私は従業員が関連付けられているいくつかのグループを調べて、そのグループをXMLの要素として追加できるように、特定の従業員IDをXMLファイルから取得しようとしています。XMLにLinqを使用してXML属性値を取得する方法は?
まず、従業員IDが必要なので、情報を参照して取得する方法を理解できません。私はすべてのネストされたノードのために私はそれを取得していないと思います。
ここに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には 'Emp'要素の下にそのような属性はありません。 –
が編集されました。同じ値を持つ2つの属性があります。投稿されたコードを減らすためにいくつかの属性を整えました。 – Caverman
私が書いた答えを見てください。 –