获取没有Child的X元素的值

时间:2012-08-06 20:32:39

标签: c# linq

如果没有更多孩子,如何在Node中获得XDocument的值?

<Contacts>
      <Company>
          <Name>Testing</Name>
          <ID>123</ID>
      </Company>
</Contacts>

在这种情况下,我想获得<Name><ID>元素的值,因为其中没有子元素。

我正在尝试以下

protected void LeXMLNode(HttpPostedFile file)
{
    XmlReader rdr = XmlReader.Create(file.FileName);            
    XDocument doc2 = XDocument.Load(rdr);            

    foreach (var name in doc2.Root.DescendantNodes().OfType<XElement>().Select(x => x.Name).Distinct())
    {
        XElement Contact = (from xml2 in doc2.Descendants(name.ToString())                                    
                            where xml2.Descendants(name.ToString()).Count() == 0
                            select xml2).FirstOrDefault();

        string nome = name.ToString();
    }           
}

但没有成功,因为我的foreach传递了所有Elements,我想获得没有孩子的Elements的值。

2 个答案:

答案 0 :(得分:1)

document.Root.Elements("Company").Elements()
                .Where(item => !item.HasElements).ToList();

答案 1 :(得分:0)