Maison  >  Article  >  développement back-end  >  Comment ajouter des sections CDATA aux fichiers XML avec SimpleXmlElement ?

Comment ajouter des sections CDATA aux fichiers XML avec SimpleXmlElement ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-23 13:30:30802parcourir

How to Add CDATA Sections to XML Files with SimpleXmlElement?

Utilisation de SimpleXmlElement pour écrire des CDATA

Lors de la création et de la mise à jour de fichiers XML avec SimpleXmlElement, vous devrez peut-être ajouter des sections CDATA. Voici une solution sur mesure pour y parvenir en utilisant une extension de la classe de base :

Classe SimpleXMLElement personnalisée

Pour éviter les conflits avec la classe native SimpleXmlElement, nous définissons notre classe personnalisée, SimpleXMLExtended :

<code class="php">class SimpleXMLExtended extends SimpleXMLElement {

  // Create CDATA section custom function.
  public function addCData( $cdata_text ) {
    $node              = dom_import_simplexml( $this ); 
    $ownerDocumentNode = $node->ownerDocument;

    $node->appendChild( $ownerDocumentNode->createCDATASection( $cdata_text )); 
  }

}</code>

Exemple d'utilisation

Avec notre classe étendue en place, abordons l'exemple spécifique :

<code class="php">// Name of the XML file.
$xmlFile    = 'config.xml';

// <?xml version=&quot;1.0&quot;?>
// <site></site>
// ^^^^^^^^^^^^^
$xml        = new SimpleXMLExtended( '<site/>' );

// Insert '<title><title>' into '<site></site>'.
// <?xml version=&quot;1.0&quot;?>
// <site>
//   <title></title>
//   ^^^^^^^^^^^^^^^
// </site>
$xml->title = NULL; // IMPORTANT! Need a node where to append.

// CDATA section custom function.
// <?xml version=&quot;1.0&quot;?>
// <site></site></code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn