用C#讀取XML指定節點下的值

費勁_奮進發表於2014-04-29


<Employees> 
  <Employee name="李宇秋" age="23"> 
    <Address> 
       長江路178號 
    </Address> 
    <Department> 
       演唱部 
    </Department> 
  </Employee> 
  <Employee name="曾不可" age="24"> 
    <Address> 
       火星路239號 
   </Address> 
    <Department> 
       舞蹈部 
   </Department> 
  </Employee> 
  <Employee name="張學敵" age="27"> 
    <Address> 
       香港街13號 
   </Address> 
    <Department> 
       偶像部 
   </Department> 
  </Employee> 
</Employees> 


要獲取 name="曾不可" 的節點下面的 Address 節點的值“火星路239號”,C#如何實現?
OK,在linq之前,可以試用XMLDocment將xml整個檔案讀進來,然後比如可以用xpath再進行分析。
自從有了linq,一切都變得簡單了,實現程式碼如下:
view sourceprint?
//假設以上xml我們儲存在一個本地xml檔案 D:\Microsoft Work\XMLPath\sampleXML.xml 中 
public List<string> GetXMLResult() 
       XElement xelement = XElement.Parse(@"D:\Microsoft Work\XMLPath\sampleXML.xml"); 
       var query = xelement.Descendants("Employee").Where(x => x.Attribute("name").Value == "曾不可").Select(x => x.Element("Address").Value); 
       if (query != null && query.Count() > 0) 
             return query.ToList<string>(); 
  
       return null; 
}





相關文章