C# の sid
のリストで属性を交換する際に、いくつかの困難に直面しています。は参考です。Item
XDocument
id
入力:
<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
関係がないことです。Item
Id
私が使用しているコードは、LINQ で sを取得するために読み込まXMLDocument
れています。XDocument
Item
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?
}
あなたの提案を教えてください。