繁体   English   中英

如何在C#中创建xml元素的路径

[英]How to create a path to xml element in C#

我想创建到xml元素的routing(path)并将其分配给变量,以便将来可以快速访问它。 该元素是其他元素的子元素,可以更改其在文档中的位置,因此我不能使用像第一个子元素或依赖位置的索引之类的方法。 元素的路径将始终保持不变,并且没有其他类似的路径。 如果我们看一个简短的示例,那么我想要一个通往level4 value(header4)的路径,以便可以对其进行修改。

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

在这种情况下,您必须使用XPath。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("Path of the xml");
XmlNode titleNode = xmlDoc.SelectSingleNode("//level1/level2/level3");

您可以为此使用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";
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM