xml_simple¶
xml_simple wandelt einen gültigen XML-String in ein UniScript-Objekt um.
-
o = xml_simple(ssXML)
Returnwert
o ist der XML-Tree oder ein Error-Objekt (siehe error_create).
xml_simple("<a>1</a>")
[.
a = "1"
]
xml_simple("<a b='1'><c>2</c></a>")
[.
a = [.
b = "1"
c = "2"
]
]
xml_simple("<a><b>1</b><c>2</c></a>")
[.
a = [.
b = "1"
c = "2"
]
]
Parameter
-
ssXML
ssXML ist ein gültiger XML-String.
Kommentar
XML-Deklarationen am Anfang des Strings werden ignoriert:
.. highlight:: xml
<?xml version=“1.0“ encoding=“UTF-8“ ?>
Der Eingabestring ssXML muss gültige UNICODE-Zeichen enthalten. text_file_read liefert für ANSI- und utf-8 kodierte Textdateien UNICODE-Strings.
Bei der Funktion xml_simple geht die Reihenfolge der Elemente verloren.
Der Aufruf:
xml_simple("<a><b>1</b><c>2</c></a>")
liefert ebenso wie der Aufruf:
xml_simple("<a><c>2</c><b>1</b></a>")
das Objekt:
[.
a = [.
b = "1"
c = "2"
]
]
Falls die Reihenfolge wichtig ist, ist die Funktion xml_parse_string besser geeignet.
Falls ein Element mehrere gleiche Kind-Elemente enthält, werden sie in ein Array geschrieben:
s = "[[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<directory>
<title>Example</title>
<entry>
<key>Test 1</key>
<text>Test 1 ...</text>
</entry>
<entry a='Hallo'>
<key>Test 2</key>
<text>Test 2 ...</text>
</entry>
</directory>]]"
o1 = xml_simple(s)
[.
directory = [.
entry = [.
[1] = [.
key = "Test 1"
text = "Test 1 ..."
]
[2] = [.
key = "Test 2"
text = "Test 2 ..."
]
]
title = "Example"
]
]
Wenn nur ein entry-Element vorhanden ist, wird kein Vektor erzeugt:
s = "[[<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<directory>
<title>Example</title>
<entry>
<key>Test 1</key>
<text>Test 1 ...</text>
</entry>
</directory>]]"
o2 = xml_simple(s)
[.
directory = [.
entry = [.
key = "Test 1"
text = "Test 1 ..."
]
title = "Example"
]
]
Mit der Hilfsfunktion xml_simple_get(element)
kann immer die
Vektor-Schreibweise verwendet werden, unabhängig davon ob das Element 0, 1 oder
mehr child-Elemente enthält:
entry = xml_simple_get(o2.directory.entry) // oder o1.directory.entry
for (i in 1:entry.count_num) {
print entry[i].text
}
Ein weitere Beispiel:
* xml_simple("<a b = '789'>456</a>")
[.
a = [.
#text = "456"
b = "789"
]
]
History
Version | Beschreibung |
---|---|
R2014 | Neu. |
Siehe auch
id-1561986