【发布时间】:2011-03-09 09:26:08
【问题描述】:
我有一个 DOM Document (org.w3c.dom) 但我需要能够通过 XPath 等找到元素。有哪个解析器或库可以提供此功能?
【问题讨论】:
我有一个 DOM Document (org.w3c.dom) 但我需要能够通过 XPath 等找到元素。有哪个解析器或库可以提供此功能?
【问题讨论】:
http://download.oracle.com/javase/6/docs/api/javax/xml/xpath/package-summary.html
页面末尾甚至有一个关于如何在 DOM 文档上使用 XPath 的示例:
// parse the XML as a W3C Document
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document document = builder.parse(new File("/widgets.xml"));
XPath xpath = XPathFactory.newInstance().newXPath();
String expression = "/widgets/widget";
Node widgetNode = (Node) xpath.evaluate(expression, document, XPathConstants.NODE);
【讨论】:
如果您已经有Document,那么您不需要解析器,因为 XML 已经被解析了。
javax.xml.xpath package 提供 XPath 功能。
【讨论】:
我首选的xpath 库是jaxen。它使用简单且功能强大。示例用法(延迟例外):
List<Node> matchingNodes = new DOMXPath("//myxpath").selectNodes(document);
【讨论】: