我有一个xml文件,其中包含一些数据:
<?xml version="1.0" encoding="utf-8" ?>
<permission>
<CP name="My Messages">
<field name="name"/>
<field name="age"/>
<field name="ID"/>
</CP>
<field name="time"/>
<CP name="My Attandance">
</CP>
</permission>
使用我的winforms应用程序。我想在我的代码中获取"My Messages"
的字段以供进一步使用,意味着我获取值并能够甚至分配给字符串或作为控件名称,我也想知道它在C#中的总数代码,
答案 0 :(得分:5)
我个人喜欢使用XPath:
using System;
using System.Linq;
using System.Xml.Linq;
using System.Xml.XPath;
class Program
{
static void Main()
{
var values = from field in XDocument.Load("test.xml")
.XPathSelectElements("//CP[@name='My Messages']/field")
where field.Attribute("name") != null
select field.Attribute("name").Value;
Console.WriteLine("total values: {0}", values.Count());
foreach (var value in values)
{
Console.WriteLine(value);
}
}
}
答案 1 :(得分:0)
这将为您提供IEnumerable字段值。
var values = from f in
((from cp in document.Root.Elements()
where cp.Attribute("name").Value == "My Messages"
select cp).First()).Elements()
select f.Attribute("Name").Value;
计数更容易:
var values = (from cp in document.Root.Elements()
where cp.Attribute("name").Value == "My Messages"
select cp).First()).Elements().Count();
虽然不是很优雅。