I'm using C#.
I have the following XML file:
<MyItems count="2">
<MyItem itemId="1234">
<MyItem itemId="12344">
<!--Same fields like any another MyItem, can be more then one element like that--->
</MyItem>
<Field id="1">1234</Field>
<Field id="2">My Item 1 Text</Field>
<Field id="3">
<ListValues>
<ListValue itemDisplayName="Item P1">Item P1</ListValue>
</ListValues>
</Field>
<Field id="4"/>
<Field id="5">
<ItemRef id="xyz">Test Reference</ItemRef>
<ItemRef id="xyzw">Test Reference2</ItemRef>
</Field>
</MyItem>
<MyItem itemId="1235">
<MyItem itemId="12355">
<!--Same fields like any another MyItem, can be more then one element like that--->
</MyItem>
<Field id="1">1235</Field>
<Field id="2">My Item 2 Text </Field>
<Field id="3">
<ListValues>
<ListValue itemDisplayName="Item P2">Item P2</ListValue>
</ListValues>
</Field>
<Field id="4"/>
<Field id="5">
<ItemRef id="xyz">Test Reference</ItemRef>
<ItemRef id="xyzw">Test Reference2</ItemRef>
</Field>
</MyItem>
<Metadata>
<MyItemFieldDef>
<ItemFieldDef id="1" aliasName="Item_ID" />
<ItemFieldDef id="2" aliasName="Item_Data0" />
<ItemFieldDef id="3" aliasName="Item_Data1" />
<ItemFieldDef id="4" aliasName="Item_Data2" />
<ItemFieldDef id="5" aliasName="Item_Data3" />
<!--ItemFieldDef 6 etc... -->
</MyItemFieldDef>
</Metadata>
</MyItems>
The xml file scheme: Items, and then for each item i have the fields (each field with field id) and the field defnition in the <Metdadata>
.
I want to convert the XML to format of "Key-Value" like the following example:
<ex:MyItems xmlns:ex="http://bla.com">
<ex:MyItem>
<ex:MyItem>
<ex:Item_ID>12344</ex:Item_ID>
</ex:MyItem>
<ex:Item_ID>1234</ex:Item_ID>
<ex:Item_Data0>My Item 1 Text</ex:Item_Text>
<ex:Item_Data1>
<ex:Item>Item P1</ex:Item>
</ex:Item_Data1>
<ex:Item_Data2 />
<ex:Item_Data3>
<ex:Item>Test Reference</ex:Item>
<ex:Item>Test Reference2</ex:Item>
</ex:Item_Data3>
<!-- Item_Data4.... -->
</ex:MyItem>
<ex:MyItem>
<ex:MyItem>
<ex:Item_ID>12355</ex:Item_ID>
</ex:MyItem>
<ex:Item_ID>1235</ex:Item_ID>
<ex:Item_Data0>My Item 2 Text </ex:Item_Text>
<ex:Item_Data1>
<ex:Item>Item P2</ex:Item>
</ex:Item_Data1>
<ex:Item_Data2 />
<ex:Item_Data3>
<ex:Item>Test Reference</ex:Item>
<ex:Item>Test Reference2</ex:Item>
</ex:Item_Data3>
<!-- Item_Data4.... -->
</ex:MyItem>
</ex:MyItems>
I'm looking for the best/easy way to make the convert from the first xml file format to the second xml file format.
The reason: the second xml file format is "readable".
I'm have been tried with XmlDocument
but its take a long time.
There is another way to do that? maybe with Serallize/Deserallize
?
Thanks a lot!!
*<ListValue>
can to be with more then one value
Edit:
1. Add ItemRef Element.
2. Add MyItem element inside MyItem Element