OPTIONAL
EXPERIMENTAL
SYNOPSIS
#include <xml.h>
mixed* xml_parse(string xml)
BESCHREIBUNG
Parst den angegebenen String <xml> als XML. Der String darf nur ein
einziges Root-Tag enthalten, weitere Root-Tags werden ignoriert.
Falls der String XML-konform war, so wird ein Array mit drei Elementen
zurueckgegeben, dessen Elemente folgendermassen definiert sind:
string XML_TAG_NAME
Der Name des XML-Tags.
mapping XML_TAG_ATTRIBUTES
Alle Attribute dieses XML-Tags als ein Mapping mit dem
jeweiligen Attributnamen als Schluessel und den Attributwert
als der dazugehoerige String.
Falls ein XML-Tag keine Attribute enthaelt, so ist dieses
Element 0.
mixed * XML_TAG_CONTENTS
Der Inhalt des XML-Tags als ein Array. Dieses Array kann
entweder Strings (reine Zeichendaten) oder Arrays
als weitere Tags enthalten, welche wiederum diese
drei Elemente besitzen.
Falls das XML-Tag nichts enthaelt, so ist dieses Element 0.
Falls der XML-String nicht wohlgeformt ist oder falls nicht genug
Speicher zur Verfuegung steht, wird eine Fehlermeldung ausgegeben.
Diese Funktion ist nur verfuegbar, wenn der Driver mit Iksemel-
Unterstuetzung compiliert wurde. In diesem Fall ist das Makro
__XML_DOM__ definiert.
BEISPIELE
xml_parse("<abc/>") -> ({ "abc", 0, 0 })
xml_parse("<abc xyz="cde"/>") -> ({ "abc", ([ "xyz" : "cde" ]), 0 })
xml_parse("<buch sprache="deutsch">" +
" <titel>Dies ist der Titel</titel>" +
" <kapitel>Dies ist ein Kapitel</kapitel>" +
" <kapitel>Das soll <b>fettgedruckt</b> sein.</kapitel>" +
"</buch>")
-> ({ "buch"
, ([ "sprache" : "deutsch" ])
, ({ ({ "titel"
, 0
, ({ "Dies ist der Titel" })
})
, ({ "kapitel"
, 0
, ({ "Dies ist ein Kapitel" })
})
, ({ "kapitel"
, 0
, ({ "Dies soll "
, ({ "b"
, 0
, ({ "fettgedruckt" })
})
, "sein."
})
})
})
})
GESCHICHTE
Eingefuehrt in LDMud 3.3.718.
SIEHE AUCH
xml_generate(E)
|