使用Linq to XML(C#)如何查找属性值?

时间:2011-09-15 18:27:52

标签: c# xml linq

我有一个简单的XML文件,如下所示:

<Institutions>
    <FI name = "NameOne">
        <longname>some text</longname>
        <APIKey>some text</APIKey>
        <connectstring>some text</connectstring>
    </FI>
    <FI name = "NameTwo">
        <longname>some text</longname>
        <APIKey>some text</APIKey>
        <connectstring>some text </connectstring>
    </FI>
</Institutions>

使用LINQ to XML我可以获取整个文件,查找“longname”,“APIKey”和“connectionstring”的所有值,但我无法弄清楚如何找到所有“名称”值或如何只获取每个FI名称值下面的三条信息。为了清楚起见,我将没有IDEA提前知道名称=值。

我正在使用:

XElement root = XElement.Load("c:\\directory\\Data_Config.xml");

IEnumerable<XElement> Fis =
from el in root.Elements("Institutions")
select el;

根据MSDN文档加载文件。所有这些引用似乎都暗示了我将要查询的名称值是什么。

我用谷歌搜索,尝试了不同的属性/元素查询,都没有运气。我很确定这很简单,但它正在躲避我。

如何获取此数据?

谢谢,

杰森

1 个答案:

答案 0 :(得分:7)

var xml = XElement.Load (@"c:\directory\Data_Config.xml");
var query = 
    from e in xml.Descendants("FI")
    select e.Attribute("name").Value;