NF 3.5 和 4.0 之间的 Ling 到 XML 差异

发布于 2024-11-26 23:21:53 字数 671 浏览 0 评论 0原文

/*  @"C:\xml\xml2.xml"

<?xml version="1.0" encoding="utf-8"?>
<food>
<fruits>
<fruit>Apple</fruit>
<fruit>Orange</fruit>
<fruit>Melon</fruit>
<fruit>Watermelon</fruit>
</fruits>
</food>


string xml_path2 = @"C:\xml\xml2.xml";
            XDocument doc2 = XDocument.Load(xml_path2);
            var qry2 = doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);
            foreach (var item in qry2) {
                Console.WriteLine(item);
            }

输出:仅显示 Apple,而不是显示所有水果,

我正在使用 Visula Studio 2008 和 Net FrameWork 3.5 。为什么会这样显示呢?

/*  @"C:\xml\xml2.xml"

<?xml version="1.0" encoding="utf-8"?>
<food>
<fruits>
<fruit>Apple</fruit>
<fruit>Orange</fruit>
<fruit>Melon</fruit>
<fruit>Watermelon</fruit>
</fruits>
</food>


string xml_path2 = @"C:\xml\xml2.xml";
            XDocument doc2 = XDocument.Load(xml_path2);
            var qry2 = doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);
            foreach (var item in qry2) {
                Console.WriteLine(item);
            }

Output: Show only Apple, instead of showing all fruits

I am using Visula Studio 2008 and Net FrameWork 3.5 . Why does it shows like that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

活泼老夫 2024-12-03 23:21:53
 doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);

这将找到一个 元素,然后对其应用 Element(name) 方法。
XContainer.Element< /a> 的定义(我的重点):

获取具有指定 XName 的第一个(按文档顺序)子元素。

所以你只得到一个结果。

 doc2.Descendants("fruits").Select(n => n.Element("fruit").Value);

This will find a single <fruits> element, it then applies the Element(name) method to it.
XContainer.Element is defined (my emphasis):

Gets the first (in document order) child element with the specified XName.

So you get just one result.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文