c#xml linq正确的方法?
我读过关于Linq和xml的文章,但是我不知道我是否用正确的方法来实现它 这里是我的XML配置文件:c#xml linq正确的方法?,c#,xml,linq,C#,Xml,Linq,我读过关于Linq和xml的文章,但是我不知道我是否用正确的方法来实现它 这里是我的XML配置文件: <?xml version="1.0" encoding="utf-8"?> <Configuration> <Priorities> <Priority Index="0">Zero</Priority> <Priority Index="1">One</Priority> <
<?xml version="1.0" encoding="utf-8"?>
<Configuration>
<Priorities>
<Priority Index="0">Zero</Priority>
<Priority Index="1">One</Priority>
<Priority Index="2">Two</Priority>
<Settings>
<Name>PriorityName</Name>
<DisplayName>PriorityDisplayName</DisplayName>
<Active>true</Active>
<Index>0</Index>
</Settings>
</Priorities>
<Workcenters>
<Workcenter Index="0">TEAM_0</Workcenter>
<Workcenter Index="1">TEAM_1</Workcenter>
<Workcenter Index="2">TEAM_2</Workcenter>
<Settings>
<Name>WorkcentersName</Name>
<DisplayName>WorkcentersDisplayName</DisplayName>
<Active>false</Active>
<Index>1</Index>
</Settings>
</Workcenters>
<ErrorPages>
<ErrorPage>
<Name>Error_1</Name>
<Type>Critical</Type>
</ErrorPage>
<ErrorPage>
<Name>Error_2</Name>
<Type>Normal</Type>
</ErrorPage>
</ErrorPages>
</Configuration>
零
一
二
优先名
优先显示名
符合事实的
0
第0队
第一队
小组2
工作中心名称
工作中心显示名称
错误的
1.
错误1
批评的
错误2
典型的
现在我访问所有优先级如下:
//Get Prios
XElement xelement = XElement.Load(xmlPath2);
IEnumerable<XElement> priorities = xelement.Descendants("Priorities");
var prios = priorities.Elements("Priority").ToList();
var settings = priorities.Elements("Settings");
foreach (XElement priority in prios)
{
Console.WriteLine(priority.Attribute("Index").Value);
Console.WriteLine(priority.Value);
}
foreach (XElement setting in settings)
{
Console.WriteLine(setting.Element("Name").Value);
Console.WriteLine(setting.Element("Active").Value);
Console.WriteLine(setting.Element("Index").Value);
Console.WriteLine(setting.Element("DisplayName").Value);
}
//获取优先级
XElement=XElement.Load(xmlPath2);
IEnumerable priorities=xelement.substands(“priorities”);
var prios=priorities.Elements(“Priority”).ToList();
var设置=优先级。元素(“设置”);
foreach(prios中的元素优先级)
{
Console.WriteLine(priority.Attribute(“Index”).Value);
Console.WriteLine(priority.Value);
}
foreach(设置中的像素设置)
{
Console.WriteLine(setting.Element(“Name”).Value);
Console.WriteLine(设置.Element(“Active”).Value);
Console.WriteLine(设置.Element(“Index”).Value);
Console.WriteLine(setting.Element(“DisplayName”).Value);
}
这是访问元素的正确方式吗?
我认为会有一个更好的阅读解决方案
你能帮我吗
谢谢您可以使用扩展方法
因此,您的代码看起来像:
XElement xelement = XElement.Load(xmlPath2);
foreach (XElement priority in xelement.XPathSelectElements("Priorities/Priority"))
{
Console.WriteLine(priority.Attribute("Index").Value);
Console.WriteLine(priority.Value);
}
foreach (XElement setting in xelement.XPathSelectElements("Priorities/Settings"))
{
Console.WriteLine(setting.Element("Name").Value);
Console.WriteLine(setting.Element("Active").Value);
Console.WriteLine(setting.Element("Index").Value);
Console.WriteLine(setting.Element("DisplayName").Value);
}
谢谢你!这是一个简单的方法!