在Java中使用XQuery从xml文件中提取CData



我有一个kml文件(本质上是xml),它有一组节点;名称、描述、坐标等。到目前为止,我只得到了两个值;名称和坐标。现在我也想获得描述数据,唯一的问题是它是CData,解析时会被忽略。

到目前为止,我一直在使用XQuery来获取数据;

XPathExpression expr = xpath.compile("//name/text()");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
for...

在kml文件中,它只是<![CDATA[…..]>与"101"(实际字符串)相反,使用相同的查询,它不会返回任何结果。

kml文件的结构为:

<Document>
  <Placemark>
    <name>101</name>
    <description><![CDATA[.....]]></description>
    <polygon>
      <coordinates>......</coordinates>
    </polygon>
  </Placemark>
  <Placemark>
  ....
  </Placemark>
</Document>    

有没有一种方法可以通过XQuery实现这一点?

使用以下XPath表达式,即不指定text():

XPathExpression expr = xpath.compile("//description");

并用node.getTextContent() 读取CDATA内容

最新更新