blob: 4649c9a838b609af0aa18029fa43aba3db280e7e [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
34 Falls der XML-String nicht wohlgeformt ist oder falls nicht genug Speicher
35 zur Verfuegung steht, wird eine Fehlermeldung ausgegeben.
36
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
41BEISPIEL
42 xml_parse("<abc/>") -> ({ "abc", 0, 0 })
43 xml_parse("<abc xyz="cde"/>") -> ({ "abc", ([ "xyz" : "cde" ]), 0 })
44
45 xml_parse("<buch sprache="deutsch">" +
46 " <titel>Dies ist der Titel</titel>" +
47 " <kapitel>Dies ist ein Kapitel</kapitel>" +
48 " <kapitel>Das soll <b>fettgedruckt</b> sein.</kapitel>" +
49 "</buch>")
50
51 -> ({ "buch"
52 , ([ "sprache" : "deutsch" ])
53 , ({ ({ "titel"
54 , 0
55 , ({ "Dies ist der Titel" })
56 })
57 , ({ "kapitel"
58 , 0
59 , ({ "Dies ist ein Kapitel" })
60 })
61 , ({ "kapitel"
62 , 0
63 , ({ "Dies soll "
64 , ({ "b"
65 , 0
66 , ({ "fettgedruckt" })
67 })
68 , "sein."
69 })
70 })
71 })
72 })
73
74GESCHICHTE
75 Eingefuehrt in LDMud 3.3.718.
76
77SIEHE AUCH
78 xml_generate(E)