当前位置: 首页 > 知识库问答 >
问题:

使用JSoup在Android中通过特定文本HTML获取特定标记的文本

章烨烨
2023-03-14

我想从带有JSoup的HTML中获取一个又一个带有特定文本的标记的文本,如下所示:

<td>AAA</td>
<td>1111</td>


<td>BBB</td>
<td>2222</td>

如果我选择AAA,我想打印1111,如果我选择BBB,我想打印2222

我尝试过这个,但没有在文本字段中打印:

    @Override
    protected Void doInBackground(Void... params) {
        try {
            // Connect to the web site
            Document document = Jsoup.connect(url).get();
            // Using Elements to get the Meta data
            Elements description = document
                    .select("td [value=AAA] td");
            // Locate the content attribute

            desc= description.text();

        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {
        // Set description into TextView
        TextView txtdesc = (TextView) findViewById(R.id.desctxt);
        txtdesc.setText(desc);
        mProgressDialog.dismiss();
    }

有人能帮忙吗?

共有1个答案

顾宸
2023-03-14

您的选择器将选择td中的所有td,该属性名为“value”,值为“AAA”。

相反,你必须匹配td标签的内容。有一个用于此目的的伪选择器matchesOwn。(own means,仅匹配元素的直接文本,不匹配任何子元素的直接文本)。

然后,前进到下一个同级元素(或者,如果感兴趣的td之前可能有另一个元素,请使用“td”作为选择器再次查询)。

试试吧

Element description = document.select("td:matchesOwn("AAA")).first().nextElementSibling();

注意,matchesOwn伪选择器的参数被解释为正则表达式。

 类似资料:
  • 我想在这里得到这个特定元素内的文本 如何使用python和selenium从“数据剪贴板文本”中获取文本? 我试过了 没有运气

  • 问题内容: 当我使用jsoup提取数据时遇到一个职位。数据如下: 我想要这样的数据: 我怎样才能做到这一点?谁能帮我? 问题答案: 您可以将html解析为,选择-Element并获取其文本。 例: 输出:

  • 我正在使用Jsoup库读取URL。此url的文本在几个

  • 问题内容: 好吧,说我有这个: 如果我想获得值“ 2”时选择“选项B”,选择器会是什么样? 请注意,这不是在询问如何获取 选定的 文本值,而是询问其中的任何一个(是否选择),具体取决于value属性。我试过了: 但这是行不通的。 问题答案: 它正在寻找ID 为且属性等于的元素。 您想要的是的孩子:

  • 问题内容: 我正在尝试浏览特定用户的推文,并获得对该推文的所有回复。我发现twitter的APIv1.1不直接支持它。 是否有破解或变通方法来获取特定推文的回复。我正在使用python Streaming API。 问题答案: 有使用REST API的解决方法。 您将需要要查找回复的原始推文作者的id_str和@username。 您应该将Search API用于作者的“ @用户名”。浏览结果以查

  • 我是正则表达式的新手,我不能做我需要的。 假设我们有这样一段文字: 我需要得到所有包含“los gatos”文本的标签。 它应该匹配4个巧合: 如何用正则表达式解决它? 编辑: 我终于找到了我需要的!我分享给任何可能需要它的人: