2010-09-08 83 views
0

循環我有一個看起來像這樣幫助通過XML在C#

<words> 
    <word>word1</word> 
    <word>word2</word> 
    <word>word3</word> 
    <word>word4</word> 
</words> 

我想通過「詞」的標籤環,只是輸出的innerText現在的XML。 我該怎麼做?

這裏就是我現在所做的,但說的節點列表數爲1

 string _badWordFileDocPath = //my file path; 
     XmlDocument badWordDoc = new XmlDocument(); 
     badWordDoc.Load(_badWordFileDocPath); 


     XmlElement root = badWordDoc.DocumentElement; 
     XmlNodeList nodes = root.SelectNodes("/words"); 
     foreach(XmlNode node in nodes) 
     { 
      Console.WriteLine(node.InnerText); 
     } 

謝謝!

回答

4

您正在選擇根節點words本身,而不是子節點word。添加/word到您的XPath:

XmlNodeList nodes = root.SelectNodes("/words/word"); 
+0

謝謝你,這是最快的修復和完美。謝謝 ! – twal 2010-09-08 03:13:19

2

您需要向下移動節點樹多了一個層:

foreach(XmlNode node in nodes) 
{ 
    XmlNodeList innerNodes = node.SelectNodes("/word"); 
    foreach(Xmlnode innerNode in innerNodes) 
    { 
      Console.WriteLine(innerNode.InnerText); 
    } 
} 
1

你缺少你的XPath /字。

您也可以使用Linq(XDocument)來獲取數據。

2

我推薦使用的類中System.Xml.Linq此任務:

XElement wordsElement = XElement.Parse(yourXmlText); 

var words = from w in wordsElement.Elements("word") 
      select w.Value; 
+0

謝謝我可能會改變爲使用linq,如你所建議的。 – twal 2010-09-08 03:14:08