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

本文关键字:属性 节点 XML 何通过 linq 访问 | 更新日期: 2023-09-27 18:09:33

我看完了这篇文章。

我有这样的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

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

Export元素不一个properties元素,这是你的GetAttribute方法试图找到。

我猜你实际上想要:

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

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