我有大约15,000个string
形式的XML。每个XML平均有1000个节点。
我不知道节点名称和XML的层次级别。对于每个XML,我需要将它们解析为List<string> elements
和List<string> values
。
如果父节点和子节点存在,父节点将添加到List<string> elements
中,null
或空字符串将添加到List<string> values
实现目标的可行方法有哪些?
编辑:我想我只需要知道如何解析一个XML,并且我可以为所有15,000条记录循环使用相同的方法。
p / s:我想过使用Dictionary
或多维List
我可以使用<key><value>
对,但它没有被批准,因为它会影响其他应用程序显著。所以它必须是List
元素和List
值
答案 0 :(得分:0)
您可以使用LINQ从XML获取所有节点。您需要将using System.Xml.Linq;
添加到解析类,然后就可以获取这样的数据。
string xml = "your xml string"
var myXmlData = XElement.Parse(xml);
//Get the names of all nodes
var allNames = (from e in myXmlData.Descendants()
select e.Name.LocalName).ToList();
//Get the values of each node - empty string for nodes with children
var allElements = (from e in myXmlData.Descendants()
select (e.HasElements ? "" : e.Value)).ToList();
这将为您提供两个List<string>
个对象,其中包含XML的所有相应名称和值。