xpath编译评估查询时出错

时间:2015-06-29 09:48:29

标签: xml xpath

我有以下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是否正确。

提前非常感谢你。

1 个答案:

答案 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