ILIAS
release_5-4 Revision v5.4.26-12-gabc799a52e6
|
Data Structures | |
class | EnumTest |
class | KeyValueTest |
class | RepeatingElementsTest |
Functions | |
keyValue (Reader $reader, $namespace=null) | |
This class provides a number of 'deserializer' helper functions. More... | |
enum (Reader $reader, $namespace=null) | |
The 'enum' deserializer parses elements into a simple list without values or attributes. More... | |
valueObject (Reader $reader, $className, $namespace) | |
The valueObject deserializer turns an xml element into a PHP object of a specific class. More... | |
repeatingElements (Reader $reader, $childElementName) | |
This deserializer helps you deserialize xml structures that look like this: More... | |
Sabre\Xml\Deserializer\enum | ( | Reader | $reader, |
$namespace = null |
|||
) |
The 'enum' deserializer parses elements into a simple list without values or attributes.
For example, Elements will parse:
<?xml version="1.0"? > <s:root xmlns:s="http://sabredav.org/ns"> <s:elem1 /> <s:elem2 /> <s:elem3 /> <s:elem4>content</s:elem4> <s:elem5 attr="val" /> </s:root>
Into:
[ "{http://sabredav.org/ns}elem1", "{http://sabredav.org/ns}elem2", "{http://sabredav.org/ns}elem3", "{http://sabredav.org/ns}elem4", "{http://sabredav.org/ns}elem5", ];
This is useful for 'enum'-like structures.
If the $namespace argument is specified, it will strip the namespace for all elements that match that.
For example,
enum($reader, 'http://sabredav.org/ns')
would return:
[ "elem1", "elem2", "elem3", "elem4", "elem5", ];
Reader | $reader | |
string | $namespace |
Definition at line 140 of file functions.php.
References $values, and Sabre\Xml\Reader\getClark().
Referenced by Sabre\Xml\Element\Elements\xmlDeserialize(), and Sabre\CalDAV\Xml\Property\ScheduleCalendarTransp\xmlDeserialize().
Sabre\Xml\Deserializer\keyValue | ( | Reader | $reader, |
$namespace = null |
|||
) |
This class provides a number of 'deserializer' helper functions.
These can be used to easily specify custom deserializers for specific XML elements.
You can either use these functions from within the $elementMap in the Service or Reader class, or you can call them from within your own deserializer functions. The 'keyValue' deserializer parses all child elements, and outputs them as a "key=>value" array.
For example, keyvalue will parse:
<?xml version="1.0"?> <s:root xmlns:s="http://sabredav.org/ns"> <s:elem1>value1</s:elem1> <s:elem2>value2</s:elem2> <s:elem3 /> </s:root>
Into:
[ "{http://sabredav.org/ns}elem1" => "value1", "{http://sabredav.org/ns}elem2" => "value2", "{http://sabredav.org/ns}elem3" => null, ];
If you specify the 'namespace' argument, the deserializer will remove the namespaces of the keys that match that namespace.
For example, if you call keyValue like this:
keyValue($reader, 'http://sabredav.org/ns')
it's output will instead be:
[ "elem1" => "value1", "elem2" => "value2", "elem3" => null, ];
Attributes will be removed from the top-level elements. If elements with the same name appear twice in the list, only the last one will be kept.
Reader | $reader | |
string | $namespace |
Definition at line 61 of file functions.php.
References $namespace, $values, Sabre\Xml\Reader\getClark(), and Sabre\Xml\Reader\parseCurrentElement().
Referenced by Sabre\Xml\Deserializer\KeyValueTest\testKeyValue(), Sabre\Xml\Deserializer\KeyValueTest\testKeyValueLoop(), Sabre\DAVACL\Xml\Request\AclPrincipalPropSetReport\xmlDeserialize(), Sabre\DAVACL\Xml\Request\PrincipalMatchReport\xmlDeserialize(), Sabre\Xml\Element\KeyValue\xmlDeserialize(), and Sabre\DAV\Xml\Element\Sharee\xmlDeserialize().
Sabre\Xml\Deserializer\repeatingElements | ( | Reader | $reader, |
$childElementName | |||
) |
This deserializer helps you deserialize xml structures that look like this:
<collection> ... ... ... </collection>
Many XML documents use patterns like that, and this deserializer allow you to get all the 'items' as an array.
In that previous example, you would register the deserializer as such:
$reader->elementMap['{}collection'] = function($reader) { return repeatingElements($reader, '{}item'); }
The repeatingElements deserializer simply returns everything as an array.
Definition at line 241 of file functions.php.
References $result, and Sabre\Xml\Reader\parseGetElements().
Referenced by Sabre\Xml\Deserializer\RepeatingElementsTest\testRead().
Sabre\Xml\Deserializer\valueObject | ( | Reader | $reader, |
$className, | |||
$namespace | |||
) |
The valueObject deserializer turns an xml element into a PHP object of a specific class.
This is primarily used by the mapValueObject function from the Service class, but it can also easily be used for more specific situations.
Reader | $reader | |
string | $className | |
string | $namespace |
Definition at line 181 of file functions.php.
References Sabre\Xml\Reader\parseCurrentElement().
Referenced by Sabre\Xml\Service\mapValueObject(), Sabre\XML\Deserializer\ValueObjectTest\testDeserializeValueObject(), Sabre\XML\Deserializer\ValueObjectTest\testDeserializeValueObjectAutoArray(), and Sabre\XML\Deserializer\ValueObjectTest\testDeserializeValueObjectIgnoredElement().