我如何获得XElement的第一个孩子?

时间:2013-08-13 21:48:52

标签: c# .net vb.net

旧的XmlElement类具有FirstChild属性。什么是XElement等价物?

Visual Studio拒绝.Element(),. Elments()[0]。

编辑:感谢您的所有建议。我没有意识到我需要导入System.Linq才能使用First方法。

Using System.Linq
.Elements.First

Using System.Linq
Descendants.First

.FirstNode

2 个答案:

答案 0 :(得分:9)

您需要XElement类的IEnumerable<XElement> Descendants()方法。

XElement element = ...;
XElement firstChild = element.Descendants().First();

此示例程序:

var document = XDocument.Parse(@"
    <A x=""some"">
        <B y=""data"">
            <C/>
        </B>
        <D/>
    </A>
    ");

Console.WriteLine(document.Root.Descendants().First().ToString());

生成此输出:

<B y="data">
    <C/>
</B>

答案 1 :(得分:4)

http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.aspx声明XElement具有继承自FirstNode的属性XContainer。这被描述为当前节点的第一个子节点,因此可能就是您所追求的。