gpt4 book ai didi

java - 需要一些有关 XPath 表达式的帮助。一个有效,另一个无效

转载 作者:行者123 更新时间:2023-12-02 00:53:48 24 4
gpt4 key购买 nike

我正在使用 COBRA HTMLParser,但没有成功解析某个特定标签。来源如下:

<li id="eta" class="hentry">
<span class="body">
<span class="actions">
</span>
<span class="content">
</span>
<span class="meta entry">Content here
</span>
<span class="meta entry stub">Content here
<span class="shared-content">
Information by
<a class="title" data="associate" href="/associate">Associate</a>
</span>
</span>
</span>
</li>

我能够使用以下 XPath 来获取正确的信息:

            XPath xpath = XPathFactory.newInstance().newXPath();
NodeList nodeList = (NodeList) xpath.evaluate("//span[contains(@class, 'body')]", document, XPathConstants.NODESET);
int length = nodeList.getLength();
System.out.println(nodeList.getLength());
for(int i = 0; i < length; i++) {
Element element = (Element) nodeList.item(i);
NodeList n = null;
try {
n = (NodeList) xpath.evaluate("span[contains(@class, 'content')]", element, XPathConstants.NODESET);
String body = n.item(0).getTextContent();
System.out.println("Content: " + body);
} catch (Exception e) {};

try {

String date = (String) xpath.evaluate("span[contains(@class, 'meta entry')]/a/span/@data", element, XPathConstants.STRING);
System.out.println("DATA: " + date);

String source = (String) xpath.evaluate("//span[contains(@class, 'meta entry')]/span", element, XPathConstants.STRING);
System.out.println("DATA: " + source);

} catch (Exception e) {};

//This does not work at all! I've tried every combination and still can't get it to run
try {
String info = (String) xpath.evaluate("//span[@class='shared-content']/a/@data", element, XPathConstants.STRING);
System.out.println("INFO: " + info);
} catch (Exception e) {};

}

无论我尝试什么组合,最后一个表达式都不起作用。我也尝试过以下方法,但没有帮助,

        String info = (String) xpath.evaluate("//span[contains(@class, 'shared-content')]/a/@data", element, XPathConstants.STRING);
String info = (String) xpath.evaluate("//span[contains(@class, 'meta entry info')]/span/a/@data", element, XPathConstants.STRING);

有什么建议吗?

编辑:有一些关于 XML 非法的建议(老实说,我自己也不确定为什么它是非法的,因为到目前为止我几乎到处都看到它),但我无法控制不过,XML(至少要等到周一,直到我的其他 friend 回来为止)。我试图看看编写包含这些信息的混搭的可行性。有什么办法可以禁用检查或其他什么吗?

这是已解析的 XML:

       <?xml version="1.0" encoding="UTF-8"?>
<span class="body">
<span class="content">TextContent</span>
<span class="meta entry">TextContent</span>

</span>

我猜文档没有被正确解析。

最佳答案

XPathVisualizer是一个很好的 XPath Visualizer 工具,在 Windows 上运行,可让您查看 XPath 查询的结果。 Xcopy 安装,单个 EXE 文件。自由的。

我拿了它并在其中运行了您的查询,得到了这个结果:

alt text

关于java - 需要一些有关 XPath 表达式的帮助。一个有效,另一个无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1805936/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com