2012-09-26 136 views
0

我想創建一個xml元素的路由(路徑)並將它分配給一個變量,這樣我可以在將來快速訪問它 。 該元素是其他元素的子元素,可以在文檔 中更改其位置,所以我不能使用像第一個子元素或索引等依賴於位置的方法。 元素的路徑將始終保持不變,並且沒有其他類似的路徑。 如果我們看一個簡短的例子,所以我想要一個level4值(header4)的路徑,所以我可以修改它。如何在C#中創建一個xml元素的路徑#

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

只是谷歌的'XPath' –

+0

@AlexeiLevenkov哈哈哎呀。傻我。過了漫長的一天。 –

回答

3

你必須在這種情況下使用XPath。

XmlDocument xmlDoc = new XmlDocument(); 
xmlDoc.Load("Path of the xml"); 
XmlNode titleNode = xmlDoc.SelectSingleNode("//level1/level2/level3"); 
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"; 
} 

如果有可能不止一個級別4,那麼你可以這樣做:

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"; 
    } 
} 
相關問題