如何通过linq访问XML节点上的属性?

时间:2011-09-22 08:41:45

标签: c# .net xml linq linq-to-xml

我通过this帖子阅读。

我有这个XML:

<?xml version="1.0" encoding="utf-8" ?>
    <Export version="" srcSys="" dstSys="" srcDatabase="" timeStamp="">

    </Export>

这是我试过的,但没有运气:

var xml = XElement.Parse(BuyingModule.Properties.Resources.Export);

Func<XElement, string, string> GetAttribute = (e, property) => e.Elements("property").Where(p => p.Attribute("name").Value == property).Single().Value;

var query = from record in xml.Elements("Export")
            select record;

var prop = GetAttribute(query.FirstOrDefault(), "version");

如何访问“导出”节点的properties

我需要设置properties

1 个答案:

答案 0 :(得分:3)

Export元素没有 properties元素,这是GetAttribute方法尝试查找的内容。

我的猜测是你实际想要:

var element = xml.Element("Export"); // Just get the first element
var version = (string) element.Attribute("version");

我不清楚为什么你在这里使用了查询表达式和委托 - 它只是比你需要的更复杂的东西。但Attribute(XName)可能是你错过的......