此 LINQ 查询出了什么问题

发布于 2024-12-19 03:12:35 字数 656 浏览 1 评论 0原文

我有以下 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 一起使用吗?

I have the following XML

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

I want to get the subelements lesson1, lesson2

I load the XML in XDocument

I have to question - what's wrong in this query

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

and it raise and error.

Also can I use XPath with XDocument?

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

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

发布评论

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

评论(4

小霸王臭丫头 2024-12-26 03:12:35

您正在寻找 ShortcutList 元素:

Element("ShortcutList")

该元素不存在。

你应该这样写来获取 subLessons :

var items = document.Element("School").Element("Math").Elements();

foreach(var item in items)
{
    DoSomething(item);
}

You are looking for a ShortcutList element :

Element("ShortcutList")

Which does not exists.

You should write this to get subLessons :

var items = document.Element("School").Element("Math").Elements();

foreach(var item in items)
{
    DoSomething(item);
}
你与昨日 2024-12-26 03:12:35

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");

LINQ to XML:

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

XPath using XmlDocument:

var doc = new XmlDocument();
doc.LoadXml(xml);
var nodes = doc.SelectNodes("School/Math/Lesson1 or School/Math/Lesson2");
权谋诡计 2024-12-26 03:12:35
document.Decendants("Math");

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

document.Decendants("Math");

yields you a IEnumrable with your two elements.
it's equal to the xpath //Math

盗心人 2024-12-26 03:12:35

Xpath 大小写用于来自此命名空间 System.Xml.XPath 的 XElement/XDocument。

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

var Nodes = from C in document.XPathSelectElements("./Math")
选择C; //快捷方式XMLDocument.SelectNodes(Query);

Xpath case used on XElement/XDocument from this namespace System.Xml.XPath.

here is your query for path...

var nodes = from C in document.XPathSelectElements("./Math")
select C; //shortcutsXMLDocument.SelectNodes(Query);

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