如何在Java中使用XPath读取XML


如何在Java中使用XPath读取XML

你需要的东西是这样的:

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(<uri_as_string>);
XPathFactory xPathfactory = XPathFactory.newInstance();
XPath xpath = xPathfactory.newXPath();
XPathExpression expr = xpath.compile(<xpath_expression>);

然后调用expr.evaluate()传入该代码中定义的文档和您期望的返回类型,并将结果转换为结果的对象类型。

如果您需要有关特定XPath表达式的帮助,您应该将其作为单独的问题提出(除非这是您首先提出的问题 - 我理解您的问题是如何在Java中使用API​​)。

编辑:(对评论的回应):这个XPath表达式将为您提供PowerBuilder下第一个URL元素的文本:

/howto/topic[@name='PowerBuilder']/url/text()

这将为您提供第二个:

/howto/topic[@name='PowerBuilder']/url[2]/text()

你得到这个代码:

expr.evaluate(doc, XPathConstants.STRING);

如果您不知道给定节点中有多少个URL,那么您应该执行以下操作:

XPathExpression expr = xpath.compile("/howto/topic[@name='PowerBuilder']/url");
NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);

然后遍历NodeList。