如何修改xml内部属性
本文关键字:xml 内部 属性 修改 何修改 | 更新日期: 2023-09-27 18:19:35
我正在尝试编辑一个xml文件。
XmlDocument myXmlDocument = new XmlDocument();
myXmlDocument.Load(@"C:''Users''Vahid''Desktop''HG''HG''HG''singleM.kml");
XmlNode myNode = myXmlDocument.SelectSingleNode(
"/kml/Document/Placemark/Point/coordinates");
myNode.Value = coordinates;
myXmlDocument.Save(@"C:''Users''Vahid''Desktop''HG''HG''HG''singleM.kml");
这是我的xml(.kml)文件:
<?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>
<name>change.kml</name>
<Style id="sn_ylw-pushpin"></Style>
<Placemark>
<Point>
<coordinates>0, 0,0</coordinates>
</Point>
<name>12</name>
</Placemark>
</Document>
</kml>
Xml命名空间:
XmlNamespaceManager ns = new XmlNamespaceManager(myXmlDocument.NameTable);
ns.AddNamespace("kml", "http://www.opengis.net/kml/2.2");
XmlNode myNode = myXmlDocument.SelectSingleNode("/kml:kml/kml:Document/kml:Placemark/kml:Point/kml:coordinates", ns);
myNode.InnerText = coordinates;
请注意,这里"kml"
/"kml:"
没有什么特别之处——它也可以是:
XmlNamespaceManager ns = new XmlNamespaceManager(myXmlDocument.NameTable);
ns.AddNamespace("x", "http://www.opengis.net/kml/2.2");
XmlNode myNode = myXmlDocument.SelectSingleNode("/x:kml/x:Document/x:Placemark/x:Point/x:coordinates", ns);
myNode.InnerText = coordinates;
重要的一点是,您的每个元素都在名称空间http://www.opengis.net/kml/2.2
中;AddNamespace
只是为此添加了一个别名,这样我们就可以方便地谈论命名空间了——然后我们使用别名编写xpath,并将命名空间管理器传递给SelectSingleNode
方法。