More in this category:
// import an XML string
myHashtable = SimpleXmlImporter.Import(xmlString);
<level1>
<level2>
Somevalue
</level2>
</level1>
Importing it gives:
{ // Hashtable
level1 : { // Hashtable
level2 : Somevalue,
}
}
<level1>
<level2a>
Somevalue
</level2a>
<level2b>
Anothervalue
</level2b>
</level1>
Imported:
{ // Hashtable
level1: { // Hashtable
level2a: Somevalue,
level2b: Anothervalue,
},
}
<level1>
<level2>
Somevalue
</level2a>
<level2>
Anothervalue
</level2>
</level1>
Imported:
{
level1: [
{
level2: Somevalue,
},
{
level2: Anothervalue,
},
],
}
Exported back to XML:
<level1>
<level2>Somevalue</level2>
<level2bgt;Anothervalue</level2>
</level1>
<level1>
<level2>
<level3a>1</level3a>
<level3b>2</level3b>
<level3c>3</level3c>
</level2>
<level2>
<level3a>4</level3a>
<level3b>5</level3b>
<level3c>6</level3c>
</level2>
<level2>
<level3a>7</level3a>
<level3b>8</level3b>
<level3c>9</level3c>
</level2>
</level1>
Imported:
{
level1: [
{
level3a: 1,
level3b: 2,
level3c: 3,
.tag.: level2,
},
{
level3a: 4,
level3b: 5,
level3c: 6,
.tag.: level2,
},
{
level3a: 7,
level3b: 8,
level3c: 9,
.tag.: level2,
},
],
}
<level1>
<level2 property:"123">
Somevalue
</level2>
<level2 property:"456">
Anothervalue
</level2>
</level1>
Imported:
{
level1: [
{
.tag.: level2,
level2: Somevalue,
property: 123,
},
{
.tag.: level2,
level2: Anothervalue,
property: 456,
},
],
}
Exported back to XML:
<level1>
<level2 property="123">
Somevalue
</level2>
<level2 property="456">
Anothervalue
</level2>
</level1>
<level1>
<level2a property:"123">
Somevalue
</level2a>
<level2a property:"456">
Anothervalue
</level2a>
<level2b>I will mess things up</level2>
</level1>
Level 1 can no longer contains an arraylist, as it would be unable to make the difference between its level2a and level2b members. And so it becomes a hashtable instead, that contains an array list for level2a. Like so:
Imported:
{
level1: {
level2a: [
{
.tag.: level2a,
level2a: Somevalue,
property: 123,
},
{
.tag.: level2a,
level2a: Anothervalue,
property: 456,
},
],
level 2b: "I will mess things up",
},
}