如何获取XElement的第一个子元素?

10

旧的 XmlElement 类有一个 FirstChild 属性。XElement 中的等价属性是什么?

Visual Studio 拒绝使用 .Element()、.Elements()[0] 和 .Elements().First()。


1
http://msdn.microsoft.com/en-us/library/system.xml.linq.xelement.aspx提到了FirstNode()方法,这是你需要的吗? - Adrian Wragg
Descendants - Jim Mischel
2个回答

17

你想要使用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>

3

我尝试使用 element.FirstNode 查找一个 XElement,但它返回了一个值为 "\r\n [几个空格]" 的 XText 对象。 - jbobbins
1
@jbobbins 可能自那篇文章发布以来已经有了一些变化 - 您正在回复一个庆祝其六周年的答案。 - Adrian Wragg

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接