Umgang mit CDATA mit PHPs SimpleXMLElement
Beim Arbeiten mit XML-Dokumenten, die CDATA-Abschnitte enthalten, unter Verwendung von SimpleXMLElement kommt es häufig zu Situationen, in denen der Inhalt innerhalb der CDATA-Tags werden als NULL zurückgegeben. Dies kann zu Schwierigkeiten beim Zugriff auf und bei der Verarbeitung der gewünschten Daten führen.
Abrufen des CDATA-Inhalts
Um den in CDATA-Tags eingeschlossenen Inhalt abzurufen, stehen einige Methoden zur Verfügung :
Beispielsweise mit folgendem XML-Snippet:
<content><![CDATA[Hello, world!]]></content>
Sie können auf die CDATA zugreifen Inhalt mit dem folgenden PHP-Code:
$content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' ); echo (string) $content;
Dies wird ausgegeben:
Hello, world!
Alternativer Ansatz: LIBXML_NOCDATA
In bestimmten Situationen können Sie Möglicherweise treten Probleme beim Abrufen von CDATA-Inhalten mit den Standardeinstellungen von SimpleXMLElement auf. Um dieses Problem zu beheben, können Sie versuchen, das Flag LIBXML_NOCDATA während der XML-Analyse zu verwenden:
$content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' , null , LIBXML_NOCDATA );
Dieser Ansatz ändert das XML-Analyseverhalten, um CDATA-Abschnitte als reguläre Textknoten zu behandeln, sodass Sie ohne die Notwendigkeit auf den Inhalt zugreifen können explizites Casting oder direkte Ausgabe.
Das obige ist der detaillierte Inhalt vonWie kann ich CDATA-Inhalte mit dem SimpleXMLElement von PHP ordnungsgemäß extrahieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!