我一直在编写一个使用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
attrib,但我不知道该怎么做。相反,我尝试这样做:
var ids = from idz in doc.Descendants("SchoolData")
select new
{
id1 = idz.Element("employee").Attribute("id").Value
};
其中doc
是XDocument var。它只返回第一个,但我希望它返回array
或List<string>
,我只是不知道如何遍历所有相同名称的employee
元素。
答案 0 :(得分:1)
XDocument doc = XDocument.Parse(xml);
List<string> ids = doc.Descendants("employee")
.Select(e => e.Attribute("id").Value)
.ToList();
答案 1 :(得分:1)
这可能会有所帮助:
var xDoc = XDocument.Load(path);
var result = xDoc.Descendants("employee")
.SelectMany(i => i.Attribute("id").Value)
.ToList();