获取XDocuments中元素的所有属性值

时间:2013-11-20 20:39:22

标签: c# xml linq-to-xml

我想在XDocument

中获取相同元素的所有属性值

e.g。

   <guideline >
     <title>hello world</title>
     <breadcrumb>    
      <ulink url="1.htm">hello world</ulink>     
     </breadcrumb>
     <breadcrumb>    
       <ulink url="2.htm">Chronic Care</ulink>      
     </breadcrumb>
     <breadcrumb>    
       <ulink url="3.htm">hello world</ulink>
       <emphasis role="bold"> &gt;</emphasis>
       <ulink url="4.htm">hello world</ulink>      
     </breadcrumb>
     <breadcrumb>          
      <ulink url="5.htm">hello world</ulink>
      <emphasis role="bold"> &gt;</emphasis>
      <ulink url="8.htm">hello world</ulink>    
      </breadcrumb>
      <breadcrumb>            
        <ulink url="6.htm">hello world</ulink>
        <emphasis role="bold"> &gt;</emphasis>
        <ulink url="7.htm">hello world</ulink>            
      </breadcrumb>
  </guideline>

如果我有这种xml,我希望所有url值为<ulink>而不循环遍历每个元素。

我试过这个但不适合我:

var urls = from vector in this.root.Descendants(xmlns + "ulink") 
           select  vector.Attribute("url").Value;

1 个答案:

答案 0 :(得分:2)

因为你已经确认你的xml中没有任何命名空间,你可以取消xmlns,然后它就可以了。

var urls = from vector in this.root.Descendants("ulink") 
           select  vector.Attribute("url").Value;