【发布时间】:2022-01-09 10:57:38
【问题描述】:
我正在学习软件开发和 Android,现在我有一个项目,我必须从 HTML 中获取数据并将其显示在我的应用程序中。
我正在使用的 html 看起来或多或少像这样:
< PR >This paragraph contains a < B >bold < /B > word< /PR >.
我需要将字符串提取为“本段包含一个粗体字”。
我试过//p, /html/body/p, //p[@*] 等等。
该段落也没有div 或id 供我使用//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/…
文本文本