| OPTIONAL |
| EXPERIMENTAL |
| SYNOPSIS |
| #include <xml.h> |
| |
| mixed * xml_parse(string xml) |
| |
| DESCRIPTION |
| Parses the given string <xml> as a XML conform string. The string must |
| have only one root tag, subsequent root tags are ignored. |
| |
| If the xml string is correct, an array is of three elements is |
| returned, where as the following indices are defined: |
| |
| string XML_TAG_NAME |
| The name of the XML tag. |
| |
| mapping XML_TAG_ATTRIBUTES |
| All attributes given to the XML tag as mapping where the key |
| is the attribute name and the value is its string value. |
| |
| If the xml tag does not contain any attributes, this element |
| is set 0. |
| |
| mixed * XML_TAG_CONTENTS |
| The contents of this xml tag as array. This array may |
| contain either strings, or arrays of sub-tags again with |
| three elements (see example) |
| |
| If the xml tag does not contain anything, the element is |
| set 0. |
| |
| If the XML string is not well formed, or there is not enough memory to |
| parse the whole XML structure into the array an error is raised. |
| |
| The function is available only if the driver is compiled with Iksemel |
| support. In that case, __XML_DOM__ is defined. |
| |
| |
| EXAMPLES |
| xml_parse("<abc/>") -> ({ "abc", 0, 0 }) |
| xml_parse("<abc xyz="cde"/>") -> ({ "abc", ([ "xyz" : "cde" ]), 0 }) |
| |
| xml_parse("<book language="common">" + |
| " <title>This is the title</title>" + |
| " <chapter>This is a chapter</chapter>" + |
| " <chapter>We want <b>bold</b> here.</chapter>" + |
| "</book>") |
| |
| -> ({ "book" |
| , ([ "language" : "common" ]) |
| , ({ ({ "title" |
| , 0 |
| , ({ "This is a title" }) |
| }) |
| , ({ "chapter" |
| , 0 |
| , ({ "This is a chapter" }) |
| }) |
| , ({ "chapter" |
| , 0 |
| , ({ "We want " |
| , ({ "b" |
| , 0 |
| , ({ "bold" }) |
| }) |
| , "here" |
| }) |
| }) |
| }) |
| }) |
| |
| HISTORY |
| Added in LDMud 3.3.718. |
| |
| SEE ALSO |
| xml_generate(E) |