0

xml 要素へのルーティング (パス) を作成し、それを変数に割り当てて、後ですばやくアクセスできるようにしたいと考えています。他の要素の子である要素は、ドキュメント内の位置を変更できるため、最初の子や位置に依存するインデックス作成などのメソッドを使用できません。要素へのパスは常に一定であり、そのようなパスは他にありません。短い例を見ると、level4 値 (header4) へのパスが必要なので、それを変更できます。

    <level1>
    <level2>
        <level3>header3</level3>
            <level4>header4</level4>
        <level3>header31</level31>
    </level2>
    <level2>
        <level3>nnn</level3>
        <level3>nnnnn</level31>
    </level2>
</level1>
4

2 に答える 2

3

その場合、XPath を使用する必要があります。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Path of the xml");
XmlNode titleNode = xmlDoc.SelectSingleNode("//level1/level2/level3");
于 2012-09-26T21:14:11.153 に答える
1

これには XPath を使用できます。

XmlDocument doc; // assuming the xml is already in doc
XmlNode node = doc.SelectSingleNode("/level1/level2/level3/level4");
if(node != null) 
{
    node.InnerText = "New value";
}

複数の level4 が存在する可能性がある場合は、次のようにすることができます。

XmlDocument doc; // assuming the xml is already in doc
XmlNodeList nodes = doc.SelectNodes("/level1/level2/level3/level4");
if(nodes != null) 
{
    foreach(XmlNode node in nodes)
    {
        node.InnerText = "New value";
    }
}
于 2012-09-26T21:13:56.490 に答える