C# 在C中处理带有属性的xml树的方法#
我仍然找不到处理xml树的好解决方案,如:C# 在C中处理带有属性的xml树的方法#,c#,xml-parsing,C#,Xml Parsing,我仍然找不到处理xml树的好解决方案,如: 问题是,我想直接去“lv 3”建立关系: (h1,11) (h1,第12页) (h2,第22页) 我在C#方面没有那么丰富的经验,我已经阅读了一些示例,但仍然无法找到一个好的解决方案 如果有人能提供帮助,我将不胜感激。首先,您的xml不是xml,有效的表示形式如下: <root> <lv1> <lv2> <lv3 d1="h1"> <lv4
问题是,我想直接去“lv 3”建立关系:
(h1,11)
(h1,第12页)
(h2,第22页)
我在C#方面没有那么丰富的经验,我已经阅读了一些示例,但仍然无法找到一个好的解决方案
如果有人能提供帮助,我将不胜感激。首先,您的xml不是xml,有效的表示形式如下:
<root>
<lv1>
<lv2>
<lv3 d1="h1">
<lv4 dd1="detail 11"/>
<lv4 dd1="detail 12"/>
</lv3>
<lv3 d1="h2">
<lv4 dd1="detail 22"/>
</lv3>
</lv2>
</lv1>
</root>
C#有3种处理XML的方法:
- (基于XDocument)-语法很好,速度也很快
- 使用DOM(基于)-速度慢,但允许对同一xml进行多次遍历
- -非常快,但cumersome不允许倒退
更合适。OP应该修复这个问题。
var xml = @"<root>
<lv1>
<lv2>
<lv3 d1=""h1"">
<lv4 dd1 = ""detail 11""/>
<lv4 dd1 = ""detail 12""/>
</lv3>
<lv3 d1=""h2"">
<lv4 dd1 = ""detail 22""/>
</lv3>
</lv2>
</lv1>
</root>";
var doc = new XmlDocument();
doc.LoadXml(xml);
foreach (XmlNode lv3Node in doc.SelectNodes("root/lv1/lv2/lv3"))
{
foreach (XmlNode lv4Node in lv3Node.SelectNodes("lv4"))
{
Console.WriteLine(lv3Node.Attributes["d1"].Value + ";" + lv4Node.Attributes["dd1"].Value);
}
}
h1;detail 11
h1;detail 12
h2;detail 22