我试图从XML文件中取出特定的员工ID,以便查找员工关联的某些组,然后将这些组作为元素添加到XML中。如何使用Linq to XML获取XML属性值?
首先,我需要employeeId,然后我可以查找一些信息,但我不了解如何获取它。我猜我没有得到它,因为所有的嵌套节点。
这里是XML结构。
<CXIXML>
<Directives>
<Updates>
<Emp tasEmpID="00123" lName="Doe" fName="John" empStatus="A" city="HDQ" />
<Emp tasEmpID="00456" lName="Smith" fName="Jane" empStatus="A" city="HDQ" />
</Updates>
</Directives>
</CXIXML>
这是我试过但我没有得到的ID。
private static void SetGroupAssociations(string xmlFile)
{
XElement xelement = XElement.Load(xmlFile);
IEnumerable<XElement> employees = xelement.Elements();
foreach (var employee in employees)
{
var employeeId = from e in employee.Descendants("Emp")
select new
{
Id = e.Element("tasEmpID")
};
Console.WriteLine(employeeId);
}
}
最终我需要最终得到类似下面的内容。因此,关于如何在特定员工节点之后添加新元素的任何建议都会很好,但首先我至少要让员工查看他们的团队。
<CXIXML>
<Directives>
<Updates>
<Emp tasEmpID="00123" lName="Doe" fName="John" empStatus="A" city="HDQ" />
<Group groupId="1">
<Group groupId="5">
<Group groupId="12">
<Emp tasEmpID="00456" lName="Smith" fName="Jane" empStatus="A" city="HDQ" />
<Group groupId="1">
</Updates>
</Directives>
</CXIXML>
您是否发布了相关的xml数据?你的C#代码尝试从“sharpID”元素中获取值,但是在你的XML中没有这样的属性。 –
已编辑。有几个属性具有相同的值。我修剪了一些属性以减少发布的代码。 – Caverman
看看我写给你的答案。 –