我有以下XML:
<?xml version="1.0" encoding="UTF-8"?>
<data>
<DataType1>
<val1 />
<val2 />
</DataType1>
<DataType2>
<val21 />
<val22 />
<RetrieveThis1>test1</RetrieveThis1>
<RetrieveThis2>test2</RetrieveThis2>
<RetrieveThis3>test3</RetrieveThis3>
</DataType2>
</data>
我需要在java中检索值test1,test2和test3。 我正在尝试使用xPath查询,如下所示:
String test1Value = xpath.compile("/data/DataType2/RetrieveThis1").evaluate(inputXML);
String test2Value = xpath.compile("/data/DataType2/RetrieveThis2").evaluate(inputXML);
String test3Value = xpath.compile("/data/DataType2/RetrieveThis3").evaluate(inputXML);
没有给出结果。你能否建议我在编译查询中传递的XPathExpresstion是否正确。
提前非常感谢你。
答案 0 :(得分:0)
此代码适用于我
String documentXmlAsString = readSomeXMLFromString();
final DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
final InputSource is = new InputSource(new StringReader(documentXmlAsString));
is.setEncoding("UTF-8");
final Document document = builder.parse(is);
final XPath xpath = XPathFactory.newInstance().newXPath();
final String test3Value = xpath.compile("/data/DataType2/RetrieveThis3").evaluate(document);
System.out.println(test3Value);
将打印test3