JTidy节点处理

发布于 2024-11-11 00:33:35 字数 371 浏览 7 评论 0原文

我正在使用 JTidy 来解析网页数据。 我的问题如下:

是否可以在先前检索到的节点上调用 XPath.evalate 方法?

我会更好地解释。 通常,您使用 xmlPath.evaluate(pattern, document, XPathConstants.NODE) 方法调用来检索与您的 xpath 表达式匹配的节点列表。

一旦我检索到 node 或 nodeList,如何从之前检索到的 node 开始执行 xmlPath.evaluate,类似于 xmlPath.evaluate(pattern, 节点, XPathConstants.NODE)

I'm using JTidy in order to parse web page data.
My question is the following:

It is possible to call the XPath.evalate method on a previously retrieved node?

I'll explain better.
Usually you use the xmlPath.evaluate(pattern, document, XPathConstants.NODE) method call to retrieve a list of nodes matching your xpath expression.

Once tht i've retrieved a node or nodeList, how can I do xmlPath.evaluate starting from the previous retrieved node, something similar to
xmlPath.evaluate(pattern, node, XPathConstants.NODE)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夏夜暖风 2024-11-18 00:33:35

是的,我认为这是可能的:

URL url = new URL("http://www.w3.org");

// configure JTidy
Tidy tidy = new Tidy();
tidy.setXHTML(true);
tidy.setQuiet(true);
tidy.setXmlOut(true);
tidy.setShowWarnings(false);

Document doc = tidy.parseDOM(url.openConnection().getInputStream(), null);
XPath xpath = XPathFactory.newInstance().newXPath();

XPathExpression expr =
xpath.compile("//form[@action = 'http://www.w3.org/Help/search']");

Node form = (Node) expr.evaluate(doc, XPathConstants.NODE);

// create relative XPath    
expr = xpath.compile("ul/li[@class = 'last-item']/a");
Node lastItem = (Node) expr.evaluate(form, XPathConstants.NODE);

System.out.println(lastItem.getFirstChild().getNodeValue());

返回:

About W3C

Yes, I think it is possible:

URL url = new URL("http://www.w3.org");

// configure JTidy
Tidy tidy = new Tidy();
tidy.setXHTML(true);
tidy.setQuiet(true);
tidy.setXmlOut(true);
tidy.setShowWarnings(false);

Document doc = tidy.parseDOM(url.openConnection().getInputStream(), null);
XPath xpath = XPathFactory.newInstance().newXPath();

XPathExpression expr =
xpath.compile("//form[@action = 'http://www.w3.org/Help/search']");

Node form = (Node) expr.evaluate(doc, XPathConstants.NODE);

// create relative XPath    
expr = xpath.compile("ul/li[@class = 'last-item']/a");
Node lastItem = (Node) expr.evaluate(form, XPathConstants.NODE);

System.out.println(lastItem.getFirstChild().getNodeValue());

Returns:

About W3C
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文