2009-11-16 6 views
0

Im utilisant PEAR XML Serializer pour générer des résultats XML à partir d'entrées de tableau. J'ai découvert que les éléments de tableau vides sont codés comme ceci: < arraykey/>. Je préfère préfère cette façon <arraykey> </arraykey >Traitement des balises vides dans pear xml_serializer

Voici mes options:

  $options = array 
      (
       'indent' => ' ', 
       'defaultTagName' => $this->xml_tag_name, 
       'addDecl' => true, 
       'encoding' => 'UTF-8', 
       'rootName' => $this->xml_root_name, 
       XML_SERIALIZER_OPTION_RETURN_RESULT => true 
      ); 

Y at-il d'autres options pour ajouter à résoudre ce problème?

Répondre

1

Dans l'état actuel de la bibliothèque non, il utilise PEAR XML_Util et si vous regardez le code de XML_Util::createTagFromArray(), il effectue les opérations suivantes pour les balises vides:

if (!isset($tag['content']) || (string)$tag['content'] == '') 
{ 
    $tag = sprintf('<%s%s />', $tag['qname'], $attList); 
} 

Vous pourriez probablement faux contenu vide avec une chaîne qui contient un espace tel que ' ' mais cela se traduirait par quelque chose comme <arraykey> </arraykey>.

BTW, <arraykey/> est totalement légal en XML (il est recommandé pour les tags vides, il est également utilisé en XHTML).

0

Y a-t-il une raison concrète pour laquelle vous préférez le format <tag></tag> par rapport à <tag />? Notant que (comme une autre affiche l'a dit) <tag /> est totalement valide XML. Personnellement, je préfère la fermeture automatique pour une étiquette vide.

Questions connexes