一个简单问题需要一个简单的答案.
例如:
String xml = "<car><manufacturer>toyota</manufacturer></car>";
String xpath = "/car/manufacturer";
assertEquals("toyota",evaluate(xml, xpath));
Run Code Online (Sandbox Code Playgroud)
如何以简单易读的方式编写evaluate方法,该方法适用于任何给定的格式良好的xml和xpath.
显然,有很多方法可以实现,但大多数人似乎非常冗长.
我缺少的任何简单方法/库可以实现这一目标吗?
对于返回多个节点的情况,我只想要字符串表示.
bdo*_*han 37
在这里,您可以使用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 = "<car><manufacturer>toyota</manufacturer></car>";
String xpath = "/car/manufacturer";
XPath xPath = XPathFactory.newInstance().newXPath();
assertEquals("toyota",xPath.evaluate(xpath, new InputSource(new StringReader(xml))));
}
}
Run Code Online (Sandbox Code Playgroud)
对于这个用例,XMLUnit库可能非常适合:http: //xmlunit.sourceforge.net/userguide/html/index.html#Xpath%20Tests
它提供了一些额外的断言方法.
例如:
assertXpathEvaluatesTo("toyota", "/car/manufacturer",
"<car><manufacturer>toyota</manufacturer></car>");
Run Code Online (Sandbox Code Playgroud)