Maison >développement back-end >tutoriel php >Comment récupérer du XML interne avec PHP SimpleXML ?

Comment récupérer du XML interne avec PHP SimpleXML ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 03:01:02814parcourir

How to Fetch Inner XML with PHP SimpleXML?

Récupération du XML interne avec PHP SimpleXML

Lorsque vous travaillez avec des données XML, l'extraction de parties spécifiques peut être cruciale. Une tâche courante consiste à obtenir le code HTML interne d'un élément, à l'exclusion des balises de l'élément. Cet article explique comment y parvenir en utilisant PHP SimpleXML.

Contexte du problème

Considérez le XML suivant :

<code class="xml"><qa>
  <question>Who are you?</question>
  <answer>Who who, <strong>who who</strong>, <em>me</em></answer>
</qa></code>

Notre objectif est de récupérer le HTML interne du " réponse", qui est :

<code class="html">Who who, <strong>who who</strong>, <em>me</em></code>

Solution utilisant la fonction innerXML

PHP ne fournit pas de méthode intégrée pour accéder au XML interne d'un élément. Toutefois, des fonctions personnalisées peuvent être créées pour répondre à ce besoin. Une de ces fonctions, SimpleXMLElement_innerXML, est définie ci-dessous :

<code class="php">function SimpleXMLElement_innerXML($xml)
{
  $innerXML = '';
  foreach (dom_import_simplexml($xml)->childNodes as $child)
  {
    $innerXML .= $child->ownerDocument->saveXML( $child );
  }
  return $innerXML;
}</code>

Cette fonction exploite l'extension PHP DOM pour convertir notre SimpleXMLElement ($xml) en un objet DOMNode. Il parcourt ensuite ses nœuds enfants, enregistrant la représentation XML de chaque nœud dans la chaîne $innerXML. Enfin, $innerXML contient le HTML interne de l'élément.

Exemple d'utilisation

Pour utiliser la fonction SimpleXMLElement_innerXML, on peut écrire :

<code class="php">$xml = simplexml_load_string('<qa><answer>Who who, <strong>who who</strong>, <em>me</em></answer></qa>');
$innerXML = SimpleXMLElement_innerXML($xml->answer);
echo $innerXML; // Outputs: Who who, <strong>who who</strong>, <em>me</em></code>

Conclusion

Avec la fonction SimpleXMLElement_innerXML, récupérer le XML interne d'un élément devient simple. En tirant parti de l'extension DOM, nous obtenons un contrôle précis sur la manipulation XML.

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