如何解决从XML子注释获取数据到ListView
我正在尝试将所有标记类型的值都添加到listview中。 真正不清楚如何定位它们。
<Folder>
<Ex>
<Name>test1</Name>
<Tags>
<TagEx>
<Name>Subject1</Name>
<Tag Type="Maximum" Score="80" ExxTag="no">SUB1</Tag>
<Tag Type="Average" Perc="31" ExxTag="no">SUB1</Tag>
<Tag Type="Status" Results="2" ExxTag="no">SUB1</Tag>
</TagEx>
</Tags>
</Ex>
<Ex>
<Name>test2</Name>
<Tags>
<TagEx>
<Name>Subject2</Name>
<Tag Type="Maximum" Score="100" ExxTag="no">SUB2</Tag>
<Tag Type="Average" Perc="20" ExxTag="no">SUB2</Tag>
<Tag Type="Status" Results="0" ExxTag="no">SUB2</Tag>
</TagEx>
</Tags>
</Ex>
</Folder>
试图用x等将它们收集到数组中,但失败了,仅得到错误。 我从xml获取数据非常新。
编辑:进行澄清是想将它们放入一行或至少以数组的形式,因此我可以将它们设置为这样的行(列表视图):Ex Name,TagEx Name,Tag类型,分数,ExxTag,标签类型,Perc,ExxTag,标签类型,结果,ExxTag。
感谢您的帮助!
解决方法
我建议您使用此示例初始化要声明的类对象的列表(TagEx类或类似的东西)。
这是一个System.Xml.Linq
的示例,说明如何从此XML中提取本地名称,值和属性:
static void Main(string[] args)
{
var xmldoc = System.Xml.Linq.XDocument.Load(@"YOUR PATH");
foreach (var name in xmldoc.Descendants("TagEx").Elements()
.Select(x => new { Name = x.Name,Value = x.Value,Type=x.Attribute("Type"),Score = x.Attribute("Score"),ExxTag=x.Attribute("ExxTag")}))
{
// Tag Name
Console.WriteLine(name.Name.LocalName);
// Tag Value
Console.WriteLine(name.Value);
// Type Attribute value
Console.WriteLine(name.Type);
// Score Attribute value
Console.WriteLine(name.Score);
// ExxTag Attribute value
Console.WriteLine(name.ExxTag);
}
Console.ReadLine();
}
输出:
名称Subject1标签SUB1类型=“ Maximum” Score =“ 80” ExxTag =“ no”标签SUB1 Type =“ Average” ExxTag =“ no”标签SUB1 Type =“状态” ExxTag =“ no”名称 Subject2标签SUB2类型=“ Maximum” Score =“ 100” ExxTag =“ no”标签SUB2 Type =“ Average” ExxTag =“ no”标签SUB2 Type =“状态” ExxTag =“ no”