2013-12-09 26 views
0

我使用這個XML結構:獲得的XmlDocument的節點屬性在C#

<park> 
    <car title="Ferrari" available="true"> 
    <url>http://www.ferrari.com/</url> 
    </rss> 
</park> 

這是我在C#代碼:

XmlDocument doc = new XmlDocument(); 
      doc.Load("Settings.xml"); 
      XmlNodeList list = doc.SelectNodes("/park/car"); 

      foreach (XmlNode item in list) 
      { 
        string x = item["@title"].InnerText; 
      } 

我只是想獲得 「冠軍」 屬性,但我無法得到它的工作。我使用「@」但沒有成功。

+1

有一個在你的XML錯誤 - ' car'沒有關閉,'/ rss'沒有啓動元素。這是你看到的錯誤嗎? – Default

+0

這超出了你的問題的範圍,但看看'XDocument'而不是'XmlDocument'。看看http://stackoverflow.com/questions/1542073/xdocument-or-xmldocument – flindeberg

回答

1

試試這個代碼:

string x = item.Attributes["title"].Value; 
0

我建議你使用LINQ to XML解析XML:

var xdoc = XDocument.Load("Settings.xml"); 
var titles = xdoc.XPathSelectElements("//park/car") 
       .Select(c => (string)c.Attribute("title")); 

或者沒有的XPath:

var titles = xdoc.Descendants("park") 
       .Elements("car") 
       .Select(c => (string)c.Attribute("title")); 
相關問題