PHP: как обращаться


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

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

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

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

4 84

4 ответа:

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

$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
);

The LIBXML_NOCDATA является необязательным третьим параметром

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

echo trim($entry->title);

это работает идеально подходит для меня.

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