检查LINQ to XML中的独奏节点

时间:2011-01-12 00:27:26

标签: c# .net linq linq-to-xml

如何确定标签是否采用以下格式:Linq To XML中的<Closed />

1 个答案:

答案 0 :(得分:1)

您可以使用XElement.IsEmpty property。请注意IsEmpty检查链接的MSDN页面上的注释所定义的内容:

  

请注意包含的元素   开始和结束标记没有内容   不认为标签之间   是一个空元素。它有内容   没有长度。只有一个元素   仅包含一个开始标记,并且是   表示为终止空   元素,被认为是空的。

为了说明,请考虑以下示例:

var xml = XElement.Parse(@"<root>
    <pair>foo</pair>
    <pair></pair>
    <single id=""42"" />
    <single />
</root>");

foreach (var element in xml.Elements())
{
    Console.WriteLine("{0}: {1}", element.IsEmpty, element);
}

// False: <pair>foo</pair>
// False: <pair></pair>
// True: <single id="42" />
// True: <single />

如果您想检查节点IsEmpty并且没有属性,请添加对element.Attributes().Any() false的检查。