XML_Unserializer Options

XML_Unserializer Options – Liste toutes les options de XML_Unserializer

Introduction aux options

Les options vous permettent d'influencer le traitement effectué par XML_Unserializer sur le parsage d'un document XML. Cela vous permet de définir si oui ou non les attributs doivent être parsés, si oui ou non nous devons utiliser des tableaux associatifs ou des objets pour les types de données complexes et bien plus encore.

Les options peuvent être passées comme un tableau associatif au constructeur de XML_Unserializer. Vous devriez également utiliser setOption(), ou setOptions() pour définir une ou plusieurs options après la création de l'instance de XML_Unserializer.

Toutes les options disponible

Voici une liste de toutes les options supportées par XML_Unserializer.

Options de XML_Unserializer
Option Valeurs possibles Défaut Description
complexType 'array' ou 'object' 'array' Définie si les tags désirés doivent être retournés sous la forme d'un tablau associatif ou d'un objet
tagAsClass TRUE ou FALSE TRUE Définit, si oui ou non le nom de la balise doit être utilisé en tant que nom de classe si complexType a été défini comme 'object'. Si aucune classe avec ce nom de balise n'existe, la classe définie par 'defaultClass' est utilisée.
defaultClass toutes chaînes stdClass Définit la classe à utiliser pour créer les objets, si l'option complexType est défini à 'object'.
keyAttribute toute chaîne ou tableau '_originalKey' Si l'attribut spécifié dans cette option existe pour un tag, la valeur sera utilisée comme nom de la clé ou de la propriété dans l'objet ou le tableau parent
typeAttribute toute chaîne '_type' Si l'attribut spécifié dans cette option existe pour un tag, la valeur sera utilisé en tant que nom de clé ou de propriété dans l'objet ou le tableau parent. Vous devriez également spécifier un tableau associatif si vous voulez utiliser différents attributs de clés pour différentes balises. Dans ce cas, la clé du tableau contient le nom de la balise et la valeur du tableau, le nom de l'attribut correspondant.
classAttribute toute chaîne '_class' Si XML_Unserializer crée un objet, il sera une instance de stdClass, à moins que le tag a un attribut spécifié dans cette option. Si elle est définie, le nom de la classe stocké dans la valeur de l'attribut sera utilisé.
parseAttributes TRUE ou FALSE FALSE Avec cette option, vous demandez à XML_Unserializer de parser également les attributs des tags. Les deux options suivantes définissent le traitement des attributs parsés.
attributesArray FALSE ou toute chaîne FALSE Si définie à FALSE, les attributs seront traités comme les tags définis. Si vous définissez cette option en tant que chaîne, un nouveau tableau sera créé et stocké dans la structure parent en utilisant les clés spécifiées dans cette option.
prependAttributes toute chaîne '' vous permet de spécifier un préfixe pour les noms des attributs.
contentName toute chaîne '_content' Si vous décidez de parser les attributs ou un tag contenant des données cdata et des tags, alors les données cdata seront stockées dans l'index spécifié ici.
tagMap tableau associatif array() Ceci vous autorise de mapper les noms des tags aux classes PHP. Les noms des tags doivent être dans les clés et les valeurs contenant les noms de classes à utiliser pour chaque tag.
forceEnum tableau indexé array() Ceci vous autorise à spécifier une liste de balises qui seront automatiquement converties en un tableau indexé, indépendament du nombre de répétitions de la balise. Ceci vous évitera plusieurs conditions if dans votre code.
encoding toute chaîne d'encodage valide null Définit l'encodage du document original.
targetEncoding toute chaîne d'encodage valide null Définit l'encodage cible des données résultantes.
decodeFunction tout callback PHP valide null Cette option vous autorise de définir une fonction ou une méthode de callback, qui sera appliquée à toutes les données et attributs du document avant qu'elles ne soient sauvegardées dans le résultat. Ceci vous permet de décoder n'importe quelle donnée décodée dans le XML ou de convertir tout le contenu en minuscule.
returnResult TRUE ou FALSE FALSE Si défini à TRUE, XML_Unserializer::unserialize() retournera le résultat si le document peut être délinéarisé au lieu de juste TRUE.

Exemple avec les options

L'exemple suivant montre comment définir des options de XML_Unserializer.

Utilisation du constructeur

<?php
require_once "XML/Unserializer.php";
$options = array(
                    
'complexType'       => 'array'
                
);

$us = new XML_Unserializer($options);
$result $us->unserialize('exemple.xml'true);
?>

L'exemple suivant montre comment définir des options de XML_Unserializer, si l'instance a déjà été créée.

Utilisation de setOption() et de setOptions()

<?php
require_once "XML/Unserializer.php";
$us = new XML_Unserializer();
$options = array(
                    
'tagMap'            => array( 'util' => 'XML_Util' ),
                    
'classAttribute'    => '_classname'
                
);

$us->setOptions($options);
$us->setOption('complexType''object');
$result $us->unserialize('exemple.xml'true);
?>