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
Libérer: 2024-10-28 03:01:02
original
811 Les gens l'ont consulté

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal