Intereting Posts

PHP: Как обращаться с <! [CDATA [с помощью SimpleXMLElement?

Я заметил, что при использовании SimpleXMLElement в документе, который содержит те теги CDATA, содержимое всегда NULL . Как это исправить?

Кроме того, извините за спам в отношении XML здесь. Я пытаюсь получить скрипт на основе XML для работы в течение нескольких часов …

 <content><![CDATA[Hello, world!]]></content> 

Я попробовал первый хит в Google, если вы ищете «SimpleXMLElement cdata», но это не сработало.

Вероятно, вы не обращаетесь к нему правильно. Вы можете вывести его напрямую или передать его как строку. (в этом примере литье является излишним, поскольку эхо автоматически делает это в любом случае)

 $content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' ); echo (string) $content; // or with parent element: $foo = simplexml_load_string( '<foo><content><![CDATA[Hello, world!]]></content></foo>' ); echo (string) $foo->content; 

Возможно, вам повезло с LIBXML_NOCDATA :

 $content = simplexml_load_string( '<content><![CDATA[Hello, world!]]></content>' , null , LIBXML_NOCDATA ); 

LIBXML_NOCDATA является необязательным третьим параметром функции simplexml_load_file() . Это возвращает объект XML со всеми данными CDATA, преобразованными в строки.

 $xml = simplexml_load_file($this->filename, 'SimpleXMLElement', LIBXML_NOCDATA); echo "<pre>"; print_r($xml); echo "</pre>"; 

Исправить CDATA в SimpleXML

Это сделало трюк для меня:

 echo trim($entry->title); 

Это работает идеально для меня.

 $content = simplexml_load_string( $raw_xml , null , LIBXML_NOCDATA );