MG Mud User | 88f1247 | 2016-06-24 23:31:02 +0200 | [diff] [blame^] | 1 | OPTIONAL |
| 2 | EXPERIMENTAL |
| 3 | SYNOPSIS |
| 4 | #include <xml.h> |
| 5 | |
| 6 | mixed* xml_parse(string xml) |
| 7 | |
| 8 | BESCHREIBUNG |
| 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 | |
| 41 | BEISPIEL |
| 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 | |
| 74 | GESCHICHTE |
| 75 | Eingefuehrt in LDMud 3.3.718. |
| 76 | |
| 77 | SIEHE AUCH |
| 78 | xml_generate(E) |