抓取特定类型的所有XML元素:甚至嵌套元素
本文关键字:元素 嵌套 XML 类型 抓取 | 更新日期: 2023-09-27 18:25:50
我正在C#ASP.NET中解析一个XML文档。是否有一种我不知道的方法/函数可以获取标记"course"的所有元素?
XML的格式如下:
<a>
<g1>
<course></course>
<g9>
<course></course>
... more course elements
</g9>
<course></course>
<g2>
<g3>
<course></course>
...
</g3>
</g2>
</g1>
</a>
当我执行以下代码时,我没有得到任何"课程"元素,有没有一个简单的函数可以一次性获取所有这些元素?
XmlDocument xdoc = new XmlDocument();
xdoc.Load("http://kjkjkj.com");
XmlNodeList list = xdoc.DocumentElement.SelectNodes("course");
// if I debug: list.count = 0 but if I look at xdoc.DocumentElement.outerXml
// its the correct XML so I did parse the file & get XML contents.
// Is there any C# equivalent of document.getElementsByTagName("course"); ???
你很接近:
XmlNodeList list = xdoc.DocumentElement.SelectNodes("//course");
使用//
进行预混合将抓取名为course
的文档中的所有节点,无论它们在哪里。
作为一种选择,您应该考虑使用Linq-to-XML解析XML,它与Linq-to-object很好地集成在一起。相同的等效语法有
var courses = xdoc.Descendants("course");