1

我有一个包含一组节点的 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 做到这一点?

4

1 回答 1

0

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

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

并阅读CDATA内容node.getTextContent()

于 2013-02-17T19:39:55.703 回答