0

c# 中是否有一种好方法可以使用 DOM 查看 XML 节点列表并获取仅包含唯一节点的节点列表以及每个节点唯一可能属性的列表。

有问题的 XMl 文件具有相同名称但具有不同属性的节点,我想要一个所有可能节点的列表。此外,我希望仅包含唯一节点的节点列表,而不是重复节点(因此我目前生成的节点列表可能有两次联系,其中包括三次等)。它需要适用于任何 XML 文档。有任何想法吗?

这是一个例子:

 <book id="bk112">
  <author>Galos, Mike</author> 
  <title>Visual Studio 7: A Comprehensive Guide</title> 
  <genre>Computer</genre> 
  <price>49.95</price> 
  <publish_date>2001-04-16</publish_date> 
 </book>
 <book id="bk162">
  <genre>fiction</genre> 
  <popularity>High</popularity> 
  <price>20.00</price> 
  <publish_date>2002-03-12</publish_date> 
 </book>
 <cd id="bk162">
  <genre>jaz</genre> 
  <popularity>High</popularity> 
  <price>10.00</price>
 </cd>

并获得某种输出,例如:

there are 2 of the type book
there are 1 of the type cd
there are 3 of the type genre 
book may have the attributes author, title, genre, price, popularity, publish_date

但以适用于任何 xml 文件的方式。

在流派的情况下,它不需要以任何方式 celver,只要知道文档中有 3 个流派节点即可。

4

1 回答 1

0

这会做吗?

XDocument xDoc = XDocument.Load("XMLFile1.xml");
List<XElement> distinctDocs = xDoc.Descendants().GroupBy(x => x.Name).Where(x => x.Count() == 1).Select(g => g.Single()).ToList();
于 2013-08-22T15:14:42.863 回答