Я сталкиваюсь с некоторыми трудностями при замене атрибута id
в списке Item
s в C # 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>
Существует тег <Ref>
, где одна часть значения ex:bookref1
является ссылкой для Base атрибута book_bookref1_ref1
для 1-го и 2-го Item
.
Мне нужно записать 2-й 'id' в 1-йItem
и запишите 1 id
во 2 Item
в цикле.Аналогично для 3-го и 4-го Item
.Их может быть много, но это похоже на комбинацию (1 и 2, 3 и 4, 5 и 6 и т. Д.).
Проблема в том, что может быть несколько Item
с, и вItem
для сопоставления атрибута Id
.
Используемый код загружает XMLDocument
в XDocument
, получая Item
s в LINQ.
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?
}
Пожалуйста, дайте мне знать ваши предложения.