0

当没有更多孩子时,如何获得 a 的值NodeXDocument

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

在这种情况下,我想获取<Name>and<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没有孩子的价值。

4

2 回答 2

1
document.Root.Elements("Company").Elements()
                .Where(item => !item.HasElements).ToList();
于 2012-08-06T20:42:55.323 回答
0

请参阅:http XElement.HasElements: //msdn.microsoft.com/en-us/library/system.xml.linq.xelement.haselements.aspx

于 2012-08-06T20:41:04.697 回答