blob: 130063b9baf1488fe015dfdb6ccde26ee79890d1 [file] [log] [blame]
MG Mud User88f12472016-06-24 23:31:02 +02001OPTIONAL
2EXPERIMENTAL
3SYNOPSIS
4 #include <xml.h>
5
6 mixed* xml_parse(string xml)
7
8BESCHREIBUNG
9 Parst den angegebenen String <xml> als XML. Der String darf nur ein
10 einziges Root-Tag enthalten, weitere Root-Tags werden ignoriert.
11
12 Falls der String XML-konform war, so wird ein Array mit drei Elementen
13 zurueckgegeben, dessen Elemente folgendermassen definiert sind:
14
15 string XML_TAG_NAME
16 Der Name des XML-Tags.
17
18 mapping XML_TAG_ATTRIBUTES
19 Alle Attribute dieses XML-Tags als ein Mapping mit dem
20 jeweiligen Attributnamen als Schluessel und den Attributwert
21 als der dazugehoerige String.
22
23 Falls ein XML-Tag keine Attribute enthaelt, so ist dieses
24 Element 0.
25
26 mixed * XML_TAG_CONTENTS
27 Der Inhalt des XML-Tags als ein Array. Dieses Array kann
28 entweder Strings (reine Zeichendaten) oder Arrays
29 als weitere Tags enthalten, welche wiederum diese
30 drei Elemente besitzen.
31
32 Falls das XML-Tag nichts enthaelt, so ist dieses Element 0.
33
Zesstrad59c3892019-11-28 20:53:39 +010034 Falls der XML-String nicht wohlgeformt ist oder falls nicht genug
35 Speicher zur Verfuegung steht, wird eine Fehlermeldung ausgegeben.
MG Mud User88f12472016-06-24 23:31:02 +020036
37 Diese Funktion ist nur verfuegbar, wenn der Driver mit Iksemel-
38 Unterstuetzung compiliert wurde. In diesem Fall ist das Makro
39 __XML_DOM__ definiert.
40
Zesstrad59c3892019-11-28 20:53:39 +010041
42BEISPIELE
MG Mud User88f12472016-06-24 23:31:02 +020043 xml_parse("<abc/>") -> ({ "abc", 0, 0 })
44 xml_parse("<abc xyz="cde"/>") -> ({ "abc", ([ "xyz" : "cde" ]), 0 })
45
46 xml_parse("<buch sprache="deutsch">" +
47 " <titel>Dies ist der Titel</titel>" +
48 " <kapitel>Dies ist ein Kapitel</kapitel>" +
49 " <kapitel>Das soll <b>fettgedruckt</b> sein.</kapitel>" +
50 "</buch>")
51
52 -> ({ "buch"
53 , ([ "sprache" : "deutsch" ])
54 , ({ ({ "titel"
55 , 0
56 , ({ "Dies ist der Titel" })
57 })
58 , ({ "kapitel"
59 , 0
60 , ({ "Dies ist ein Kapitel" })
61 })
62 , ({ "kapitel"
63 , 0
64 , ({ "Dies soll "
65 , ({ "b"
66 , 0
67 , ({ "fettgedruckt" })
68 })
69 , "sein."
70 })
71 })
72 })
73 })
74
75GESCHICHTE
76 Eingefuehrt in LDMud 3.3.718.
77
78SIEHE AUCH
79 xml_generate(E)