如何从XElement获取所有非空节点?

时间:2010-07-16 07:32:16

标签: c# linq-to-xml

我正在尝试从XElement中获取实际具有值的所有节点, 目前我正在使用此代码:

var nodes = from node in elem.Nodes()
            where node.NodeType == XmlNodeType.Element &&
                  ((XElement) node).Value.Length >  0
            select node;

是否有内置运算符来执行此操作?

由于

1 个答案:

答案 0 :(得分:1)

我不相信内置了这样的东西。你确定要包含具有子元素的元素吗?例如:

XElement e = new XElement("Foo", new XElement("Bar"));
Console.WriteLine(e);
Console.WriteLine(e.Value.Length);

这将打印:

<Foo>
  <Bar />
</Foo>
0

...所以Foo将被包含为“空”节点,即使它包含另一个元素。这绝对是你想要的吗?