2009-10-19 72 views
1

假設我有在c#類似於下面獲取XML屬性

<?xml version=」1.0」 encoding=」UTF-8」?> 
<validate status=」yes」 last_updated=」2009-07-05T11:31:12」> 
etc...etc 
</validate> 

XML我怎樣才能獲得的狀態值的驗證元素?

只會有一個驗證元素。 我怎麼能做到這一點的LINQ?......或者,如果那裏有一個簡單的方法也許

回答

8
XDocument xdoc = XDocument.Load("file name"); 
    // string status = xdoc.Root.Attribute("status").Value; 

@馬克的建議

string status = (string)xdoc.Root.Attribute("status"); 
+5

小提示:use:'string status =(string)xdoc.Root.Attribute(「status」);' - 那麼如果該屬性不存在(易於測試),則會得到'null',而不是異常。 –

1
XmlDocument doc = new XmlDocument(); 
doc.Load(...); 
doc.DocumentElement.Attributes["status"].Value 

是單向的。

+0

我覺得這是不使用LINQ。是嗎 ? – Hari

5
string xml = @"<?xml version=""1.0"" encoding=""UTF-8""?> 
<validate status=""yes"" last_updated=""2009-07-05T11:31:12""> 
etc...etc 
</validate> 
"; 

      var doc = XDocument.Parse(xml); 
      var item = doc.Elements("validate").First().Attributes("status").First().Value; 

      Console.WriteLine(item);