2

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>
4

1 に答える 1

0

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

于 2013-06-24T09:44:55.330 に答える