C# の sidのリストで属性を交換する際に、いくつかの困難に直面しています。は参考です。ItemXDocumentid
入力:
<Items>
<Item base="book_bookref1_ref1">
<Name>Test1</Name>
<Ref>bookref1</Ref>
</Item>
<Item base="book_bookref1_ref2">
<Name>Test2</Name>
<Ref>bookref1</Ref>
</Item>
<Item base="book_bookref2_ref1">
<Name>Test3</Name>
<Ref>bookref2</Ref>
</Item>
<Item base="book_bookref2_ref2">
<Name>Test4</Name>
<Ref>bookref2</Ref>
</Item>
</Items>
期待される出力:
<Items>
<Item base="book_bookref1_ref1" id="book_bookref1_ref2">
<Name>Test1</Name>
<Ref>bookref1</Ref>
</Item>
<Item base="book_bookref1_ref2" id="book_bookref1_ref1">
<Name>Test2</Name>
<Ref>bookref1</Ref>
</Item>
<Item base="book_bookref2_ref1" id="book_bookref2_ref2">
<Name>Test3</Name>
<Ref>bookref2</Ref>
</Item>
<Item base="book_bookref2_ref2" id="bookref2_ref1">
<Name>Test4</Name>
<Ref>bookref2</Ref>
</Item>
</Items>
1st と 2ndのBase属性<Ref>の値の一部がex:bookref1参照になっているタグがあります。book_bookref1_ref1 Item
2 番目の 'id' を 1 番目Itemに書き込み、1 番目idを 2番目に書き込む必要がありItemます。3 番目と 4 番目も同様ですItem。多くの場合がありますが、組み合わせのようなものです (1 と 2、3 と 4、5 と 6 など)。
ここでの問題は、複数の が存在する可能性があり、 に属性をマップするItem関係がないことです。ItemId
私が使用しているコードは、LINQ で sを取得するために読み込まXMLDocumentれています。XDocumentItem
Var doc = XDocument.Load(xml)
var ItemsList
foreach(var itm in ItemsList)
{
// I'm stuck here. How do we get the id attribute value based on Ref tag?
}
あなたの提案を教えてください。