我正在研究一个需要能够从XML文件加载对象属性的程序。这些属性可由用户配置,XML对我来说是有意义的。使用Linq加载重复命名的XML节点[C#]
取下面的XML文档。
<?xml version="1.0" encoding="utf-8" ?>
<udpcommands>
<command name="requser">
<cvar name="reqchallege" value="false" />
</command>
<command name="reqprocs">
<cvar name="reqchallenge" value="false" />
</command>
</udpcommands>
我需要能够从上面cvars的属性加载值。我认为Linq-To-XML对它会有好处(我正在寻找Linq的应用程序,所以我可以学到它)。我已经完成了一个Linq-to-XML查询来根据名称选择正确的“命令”。我正在阅读MSDN寻求帮助。
以下代码片段出现在构造函数中,该构造函数使用参数“字符串名称”来标识要提取的正确XML <command>
。
我希望有一个linq语句将每个<cvar>
从给出段名称的XML中抽出,并将所有内容都转储到IEnumerable。或者,我正在寻找更好的选择。我对任何事情都很开放。我只想使用Linq,这样我可以更好地学习它。
XElement doc = XElement.Load("udpcommands.xml");
IEnumerable<XElement> a = from el in doc.Elements()
where el.FirstAttribute.Value == name
select el;
foreach (var c in a)
{
Console.WriteLine(c);
}
上面的代码片断输出以下控制台:
<command name="requser">
<cvar name="reqchallege" value="false" />
</command>
OMG。谢谢! :D :)对我也有意义 – Zack 2009-11-20 18:52:27
嗯。所以,我应该试试看,看看它是否存在?或者是否有我可以调用的方法来检查该节点上是否存在节点和/或属性? – Zack 2009-11-20 18:56:38
问题:我现在如何访问属性? – Zack 2009-11-20 19:30:58