<Document>
<Heading1>
<text>Heading Title</text>
<para>para1</para>
<para>para2</para>
<para>para3</para>
</Heading1>
<Heading1>
<text>2nd Heading Title</text>
<para>para4</para>
<para>para5</para>
<para>para6</para>
<Heading2>
<text>3rd Heading Title</text>
<para>para4</para>
<para>para5</para>
</Heading2>
</Heading1>
</Document>
这是XML文档。现在,我想使用C#(4.0)解析此XML文件。在这里,我希望在我的程序中不使用该元素名称来获取所有Heading1元素。例如,不要使用document.GetElementsByTagName("Heading1");
。我怎么弄它。指导我摆脱这个问题。
谢谢&amp;问候。
答案 0 :(得分:3)
使用LINQ to XML,您可以:
var headings = yourXDocument.Root.Elements();
使用Nodes()代替Elements()也会返回文字节点和评论,这显然不是您想要的。
答案 1 :(得分:2)
如果使用LINQ to XML,则可以通过Elements()
方法访问文档或元素的子元素。
XDocument doc = ...;
var query = doc.Root.Elements();
答案 2 :(得分:1)
如果您使用XmlDocument
,则可以:
var elements = doc.SelectNodes("/*/*");
查找顶级元素的所有子元素,而不管其名称是什么。如果您知道名称通常更安全,那么具有意外名称的元素不会在您的列表中返回 - 使用/Document/Heading1
来执行此操作。