如果没有更多孩子,如何在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
的值。
答案 0 :(得分:1)
document.Root.Elements("Company").Elements()
.Where(item => !item.HasElements).ToList();
答案 1 :(得分:0)
请参阅XElement.HasElements
:http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.haselements.aspx