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

时间:2013-02-17 18:04:02

标签: java xml xquery kml

我有一个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实现?

1 个答案:

答案 0 :(得分:0)

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

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

并使用CDATA

阅读node.getTextContent()内容