【问题标题】:Can someone help me with the xpath syntax to get a paragraph from HTML有人可以帮助我使用 xpath 语法从 HTML 中获取段落吗
【发布时间】:2022-01-09 10:57:38
【问题描述】:

我正在学习软件开发和 Android,现在我有一个项目,我必须从 HTML 中获取数据并将其显示在我的应用程序中。

我正在使用的 html 看起来或多或少像这样:

< PR >This paragraph contains a < B >bold < /B > word< /PR >.

我需要将字符串提取为“本段包含一个粗体字”。

我试过//p, /html/body/p, //p[@*] 等等。

该段落也没有divid 供我使用//div/p

我是新手,我在第二年完成了 XPath,但只是短暂的。

一个工作示例是//div[@id:blog-stats-2]/ul/li/,我必须在其中获取当前视图 来自一个男人的博客网站,这很有效。

我真的需要帮助。如果它能让我的问题更清楚,我会告诉你我的代码。

提前致谢。

得到答案

HtmlCleaner cleaner = new HtmlCleaner();

            URL url = new URL(option_url);
            URLConnection conn = url.openConnection();
            TagNode node = cleaner.clean(new InputStreamReader(conn.getInputStream()));
            Object[] info_nodes = node.evaluateXPath("//P");

            if (info_nodes.length > 0) 
            {
                for (int x = 0; x < info_nodes.length; x++) 
                {
                    TagNode info_node = (TagNode) info_nodes[x];
                    String name = info_node.getText().toString();
                    Log.d("P NODES",name);
                }
            }

现在我只是要把它保存在一个数组中!!!!!!!!!

【问题讨论】:

  • 你使用的是,应该是

    。这是一个错字吗?有 pr 时搜索 p 是不行的。

  • 以及标签名称周围的所有空格——如果这是在您的源文档中,那么您在将其解析为 HTML/XML 时会遇到很大的问题。
  • 我只是把空格放在那里让你看到标签,否则它会用粗体字格式化为字符串。
  • 有很多大段落文本
    文本文本
    。我打错了。我对此真的很陌生,这也是我第一次在这里提问。如果可以的话请帮忙。如果有帮助,请提供源代码链接:view-source:guide-southafrica.za.net/…

标签: android html xpath


【解决方案1】:

如果表达式EXP 选择了您感兴趣的段落,那么string(EXP) 返回该段落的字符串值,这就是您要查找的内容。

您还没有真正提供任何关于 EXP 可能是什么的线索,也就是说,您希望如何将此段落与文档中的所有其他段落区分开来。

【讨论】:

  • 我们不想要一个完整的网站。提取足够多的内容来清楚地解释问题。
【解决方案2】:

尝试使用轴 xpath,例如: //p/descendant-or-self::text()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-18
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 2017-12-09
相关资源
最近更新 更多