以更快/更短的方式在XElement中使用c#中指定的属性获取属性值

本文关键字:属性 获取 XElement 方式 | 更新日期: 2023-09-27 18:08:49

假设我有如下内容:

<my-element>
    <property name="the property name" value="the value"/>
    <property name="some other property name" value="other value"/>
</my-element>

我使用以下代码从名称等于的属性中获取 "属性名称"。

string theValue = (
    from p
    in myElement.Elements("Property")
    where p.Attribute("name").Value == "the property name"
    select p.Attribute("value").Value
).FirstOrDefault();

这个片段完成了工作,但我想知道是否有更好的方法来完成它。

以更快/更短的方式在XElement中使用c#中指定的属性获取属性值

我不确定这种主观的更好的方法,但是您也可以使用Xpath

var xDoc = XDocument.Parse(xmlstring);
var val = (string)xDoc.XPathSelectElement("//property[@name='the property name']")
                      .Attribute("value");