Это XML
Я получаю по запросу:
<ODM xmlns:.....>
<Data DID="Mdid">
<SubjectData SubjectKey="1">
<SRef Location="Loc1"/>
<SEventData SEventID="SID1">
<FormData FormID="FID1">
<ItemGroupData ItemGroupID="IGID1">
<ItemData ItemID="IID1" IsNull="Yes"/>
<ItemData ItemID="IID2" IsNull="Yes"/>
<ItemData ItemID="IID3" IsNull="Yes"/>
<ItemData ItemID="IID4" Value="cvs"/>
</ItemGroupData>
</FormData>
</SEventData>
</SubjectData>
</Data>
<Data DID="Zdid">
<SubjectData SubjectKey="2">
<SRef Location="Loc2"/>
<SEventData SEventID="SID2">
<FormData FormID="FID2">
<ItemGroupData ItemGroupID="IGID2">
<ItemData ItemID="IID11" Value="xcs"/>
<ItemData ItemID="IID12" IsNull="Yes"/>
<ItemData ItemID="IID13" IsNull="Yes"/>
<ItemData ItemID="IID14" Value="zfv"/>
</ItemGroupData>
</FormData>
</SEventData>
</SubjectData>
</Data>
........
</ODM>
Как я могу хранить Предметы и их Значения в сетке из определенных Data
, SubjectData
, SEventData
, FormData
, ItemGroupData
или ItemData
?
Это то, что я пробовал для ItemData
, но он возвращает null
:
var xdoc = XDocument.Parse(response.RawXMLString());
var items = xdoc.Descendants("ItemData")
.ToDictionary(i => (string)i.Attribute("ItemID"),
i => (string)i.Attribute("Value"));
Пример
Элементы данных "Mdid" (будут одинаковыми для SubjectKey
== 1, SEventID
= "SID1" и т. Д. Но элементы данных "Zdid" будут другими, поскольку они, вероятно, будут содержать разные ItemData
):
ItemID | IsNull | Value
IID1 | Yes |
IID2 | Yes |
......
EDIT
Оба решения, к сожалению, не сработали ... В случае, если это поможет, вот пример xml, над которым я работаю: ссылка