1

我一直在编写一个使用 XDocument 存储员工数据的程序:

<!-- School Employee Data -->
<SchoolData storeName="mikveIsrael" location="mikve">
    <employee id="1">
        <personalInfo>
            <name>Ilan Berlinbluv</name>
            <zip>58505</zip>
        </personalInfo>
        <employeeInfo>
            <salary>5000</salary>
            <id>1</id>
        </employeeInfo>
    </employee>
    <employee id="2">...</employee>
</SchoolData>  

我希望我的程序读取每个employee id属性,但我不知道该怎么做。相反,我尝试这样做:

    var ids = from idz in doc.Descendants("SchoolData")
              select new
              {
                  id1 = idz.Element("employee").Attribute("id").Value
              };

docXDocument 变量在哪里。它只返回第一个,但我希望它返回一个arrayor List<string>,我只是不知道如何遍历所有同名employee元素。

4

2 回答 2

1
XDocument doc = XDocument.Parse(xml);
List<string> ids = doc.Descendants("employee")
                        .Select(e => e.Attribute("id").Value)
                          .ToList();
于 2013-10-31T18:38:55.330 回答
1

这可能会有所帮助:

var xDoc = XDocument.Load(path);

var result = xDoc.Descendants("employee")
                 .SelectMany(i => i.Attribute("id").Value)
                 .ToList();
于 2013-10-31T18:42:19.930 回答