簡體   English   中英

如何修改xml內部屬性

[英]How do I modify xml internal attributes

我正在嘗試編輯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只是AddNamespace添加了一個別名 ,以便我們可以方便地討論名稱空間-然后,我們使用別名編寫xpath,並將名稱空間管理器傳遞給SelectSingleNode方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM