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.
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>
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.
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>
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!