【发布时间】:2015-12-04 17:14:56
【问题描述】:
我确实有以下 xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<Document>
<open>1</open>
<Placemark>
<name>L14A</name>
<description>ID:01F40BF0
PLACEMENT:Home Woods
RSSI:-82
</description>
<Style>
<IconStyle>
<Icon>
<href>http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=3|0000CC|FFFFFF</href>
</Icon>
</IconStyle>
</Style>
<Point>
<coordinates>-73.16551208,44.71051217,0</coordinates>
</Point>
</Placemark>
</Document>
</kml>
文件比那个大,但它确实代表了结构。我正在尝试删除元素 <Style>,但找不到正确的方法。
代码是:
XDocument xdoc = XDocument.Load("kkk.kml");
xdoc.Descendants("Style").Remove();
xdoc.Save("kkk-mod.kml");
Descendants 集合始终为空。
此外,当我保存文件时,它确实将“kml:”附加到我的每个元素(见下文)。
<kml:Placemark>
<kml:name>L14A</kml:name>
<kml:description>ID:01F40BF0
</kml:description>
<kml:Point>
<kml:coordinates>-73.200,44.500,0</kml:coordinates>
</kml:Point>
</kml:Placemark>
我怎样才能做到正确?
- 删除
- :kml 附加在最终文件中。
【问题讨论】:
-
您需要在元素名称中包含命名空间,否则 XML 解析器将找不到指定的节点。在这种情况下,您需要使用
http://www.opengis.net/kml/2.2。