在java中评估字符串上的xpath并返回结果字符串的简单方法是什么

一个简单问题需要一个简单的答案。

例如:

String xml = "toyota"; String xpath = "/car/manufacturer"; assertEquals("toyota",evaluate(xml, xpath)); 

如何以简单易读的方式编写evaluate方法,该方法适用于任何给定的格式良好的xml和xpath。

显然,有很多方法可以实现,但大多数人似乎非常冗长。

我缺少的任何简单方法/库可以实现这一目标吗?

对于返回多个节点的情况,我只想要字符串表示。

在这里,您可以使用Java SE完成以下操作:

 import java.io.StringReader; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathFactory; import org.xml.sax.InputSource; public class Demo { public static void main(String[] args) throws Exception { String xml = "toyota"; String xpath = "/car/manufacturer"; XPath xPath = XPathFactory.newInstance().newXPath(); assertEquals("toyota",xPath.evaluate(xpath, new InputSource(new StringReader(xml)))); } } 

对于这个用例,XMLUnit库可能非常适合: http : //xmlunit.sourceforge.net/userguide/html/index.html#Xpath%20Tests

它提供了一些额外的断言方法。

例如:

 assertXpathEvaluatesTo("toyota", "/car/manufacturer", "toyota"); 

使用https://github.com/guppy4j/libraries/tree/master/messaging-impl中的Xml类:

 Xml xml = new Xml("toyota"); assertEquals("toyota", xml.get("/car/manufacturer"));