通过属性值从xml获取数据

时间:2012-05-16 11:57:00

标签: linq linq-to-xml

我有一个包含以下内容的文件(myfile.xml)。我必须将所有内容(包括产品节点)包含在id=1的产品中。

<products>  
  <product id="1">
       <category>q</category>  
  </product>    
  <product id="2">      
       <category>w</category>    
  </product>   
  <product id="3">       
  <category>e</category>   
 </product>
</products>`

即。结果应该是:

 <product id="1"> 
      <category>q</category>
  </product> 

我该怎么做?

2 个答案:

答案 0 :(得分:1)

使用XPath in Linq

var root = XElement.Load("myfile.xml");  
root.XPathSelectElements( "/products/product[@id=1]");

答案 1 :(得分:0)

var root = XElement.Load("path to the file");
var node = root.Descendants("product").FirstOrDefault(e=>e.Attribute("id").Value == "1");