什么';这个LINQ查询出错了

本文关键字:查询 出错 错了 LINQ 这个 什么 | 更新日期: 2023-09-27 18:16:42

我有以下XML

<School Version="30">
    <Math>
        <Lesson1 Type="Active">Introduction</Reset_mode>
        <Lesson2 Type="Active">Fundamentals</Reset_mode>         
    </Math>
</School>

我想得到子元素lesson1,lesson2

我在XDocument 中加载XML

我不得不质疑-这个查询出了什么问题

var nodes = from C in document.Element("School").Elements()
            where document.Element("School").Elements().Contains(t => t.Name == "Math")
            select C ; //shortcutsXMLDocument.SelectNodes(Query); 

并且它上升和错误。

我还可以将XPath与XDocument一起使用吗?

什么';这个LINQ查询出错了

您正在寻找ShortcutList元素:

Element("ShortcutList")

它不存在。

你应该写这篇文章来获得subLessons:

var items = document.Element("School").Element("Math").Elements();
foreach(var item in items)
{
    DoSomething(item);
}

LINQ to XML:

 from subject in XDocument.Load(xml).Element("School").Elemens()
 where subject.Name == "Math"
 select subject.Elements();

使用XmlDocument:的XPath

var doc = new XmlDocument();
doc.LoadXml(xml);
var nodes = doc.SelectNodes("School/Math/Lesson1 or School/Math/Lesson2");
document.Decendants("Math");

为您生成一个包含两个元素的IEnumable。它等于xpath//数学

Xpath大小写用于此命名空间System.Xml.XXPath.中的XElement/XDocument

这是您对路径的查询。。。

var nodes=来自文档中的C。XPathSelectElements("./Math"(选择C//shortcutsXMLDocument.SelectNodes(查询(;