在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"));