Я пытался найти хороший способ разобрать следующий тип XML, чтобы получить коллекцию объектов, как показано ниже XML.Имейте в виду, вся установка будет динамичной, и схема входящего XML может измениться.Результирующий объект не изменится!По этой причине я также создаю картографический XML, который я собираюсь использовать для анализа входящего XML.
Вот небольшой пример XML-данных.Будет большое количество (20-30) 'записей записей' и разных типов данных, кроме .
<TESTREPORT>
<DATASET>
<TESTRECORD>
<ID_SOURCE>Common Value A</ID_SOURCE>
<TESTDATA>
<TEST_NAME>Record Number</TEST_NAME>
<TEST_VALUE>12345</TEST_VALUE>
</TESTDATA>
<TESTDATA>
<TEST_NAME>Software Part Number</TEST_NAME>
<TEST_VALUE>111111</TEST_VALUE>
</TESTDATA>
</TESTRECORD>
<TESTRECORD>
<ID_SOURCE>Common Value B</ID_SOURCE>
<TESTDATA>
<TEST_NAME>Record Number</TEST_NAME>
<TEST_VALUE>23456</TEST_VALUE>
</TESTDATA>
<TESTDATA>
<TEST_NAME>Unit Checksum</TEST_NAME>
<TEST_VALUE>ABCDEF23</TEST_VALUE>
</TESTDATA>
</TESTRECORD>
</DATASET>
Вот первый черновик XML-сопоставления I 'м предвидение.Проблема, с которой я сейчас сталкиваюсь, заключается в том, как получить-значение «прилипать», когда я перебираю элементы , используя LINQ to XML.
<segment code="TEST" segmentid="2">
<datadetails>
<datadetail path="REPORT/DATASET/TESTRECORD">
<datapoint name="Source" path="ID_SOURCE" sticky="??" />
<datapoint name="Data" path="TESTDATA/TEST_NAME" />
<datapoint name="Value" path="TESTDATA/TEST_VALUE" />
</datadetail>
</datadetails>
Вот объект (или его серии), который мне нужно создать:
new Detail { Source = "Common Value A", Data = "Record Number", Value = "12345" };
new Detail { Source = "Common Value A", Data = "Software Part Number", Value = "111111" };
new Detail { Source = "Common Value B", Data = "Record Number", Value = "23456" };
new Detail { Source = "Common Value B", Data = "Unit Checksum", Value = "ABCDEF23" };
Я просто выбросил свой n-й подход и ищу входные данные.Ваша помощь очень ценится!