Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich inneren XML-Inhalt aus einem SimpleXMLElement in PHP?

Wie extrahiere ich inneren XML-Inhalt aus einem SimpleXMLElement in PHP?

DDD
DDDOriginal
2024-11-01 16:00:31863Durchsuche

How to Extract Inner XML Content from a SimpleXMLElement in PHP?

PHP SimpleXML: Zugriff auf inneres XML

Im Bereich der PHP-XML-Analyse ermöglicht die SimpleXML-Erweiterung Entwicklern die einfache Bearbeitung von XML-Dokumenten. Das Extrahieren des inneren Inhalts eines XML-Elements, mit Ausnahme der umgebenden Element-Tags, kann jedoch eine Herausforderung sein.

Bedenken Sie das folgende XML-Snippet:

<qa>
  <question>Who are you?</question>
  <answer>Who who, <strong>who who</strong>, <em>me</em></answer>
</qa>

Um nur den Inhalt des „ Antwort“-Element (d. h. „Wer wer, wer wer, ich“), müssen wir die Standardmethode asXML() umgehen. Stattdessen führen wir eine elegante Lösung mit der Funktion dom_import_simplexml() ein.

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

Durch den Einsatz dieser Funktion können wir auf das innere XML jedes Elements zugreifen:

<code class="php">$xml = simplexml_load_string($xmlString);
$innerAnswer = SimpleXMLElement_innerXML($xml->answer);</code>

Das resultierende $ Die Variable innerAnswer enthält die gewünschte Zeichenfolge: „Who who, who who, me“. Dieser Ansatz bewahrt die ursprüngliche Formatierung und die Zeicheneinheiten im inneren XML und ist somit ideal für die Wahrung der Integrität des extrahierten Inhalts.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich inneren XML-Inhalt aus einem SimpleXMLElement in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn