CData-Inhalt beim Parsen der XML-Datei erhalten

8

Ich habe eine XML-Datei

%Vor%

Ich habe xpath und und xquery verwendet, um das XML zu analysieren.

%Vor%

Ich bekomme den Titel richtig, aber ich bekomme keine Beschreibung. Wie kann ich Daten hinein bekommen das cdata     

Warrior 06.09.2010, 09:05
quelle

3 Antworten

8

SimpleXML hat ein kleines Problem mit CDATA, also verwenden Sie:

%Vor%

Dies gibt Ihnen:

%Vor%     
ocodo 06.09.2010, 10:31
quelle
9

Sie werden wahrscheinlich dazu verleitet, zu denken, dass CDATA fehlt, indem Sie print_r oder eine der anderen "normalen" PHP-Debugfunktionen verwenden. Diese können den vollständigen Inhalt eines SimpleXML-Objekts nicht sehen, da es kein "echtes" PHP-Objekt ist.

Wenn Sie echo $nodes[0]->Description ausführen, werden Sie feststellen, dass Ihr CDATA in Ordnung ist. Was passiert, ist, dass PHP weiß, dass echo eine Zeichenkette erwartet, also fragt SimpleXML nach einer; SimpleXML antwortet mit all dem Inhalt der Zeichenfolge, einschließlich CDATA.

Um den vollständigen String-Inhalt zuverlässig zu erhalten, teilen Sie PHP einfach mit, dass Sie eine Zeichenfolge mit dem Operator (string) cast, z. $description = (string)$nodes[0]->Description .

Um SimpleXML-Objekte zu debuggen und sich nicht von solchen Macken täuschen zu lassen, verwenden Sie eine dedizierte Debugging-Funktion, beispielsweise: Ссылка

    
IMSoP 11.12.2012 23:58
quelle
2

Dies könnte auch eine andere praktikable Option sein, die diesen Code entfernen und das Leben etwas einfacher machen würde.

%Vor%     
vr_driver 24.01.2017 13:32
quelle

Tags und Links