#php #xml #simplexml
#php #xml #simplexml
Вопрос:
Я использую простой xml для php и пытаюсь проанализировать <content>
элемент, который является частью следующего дерева:
<entry>
… <title>
… <link>
… <summary>
… <content>
Проблема в том, что <content>
элемент не может быть прочитан как строка, потому что он содержит «нестроковое» содержимое, которое не завернуто в CDATA:
<content type="xhtml" xml:lang="en-US" xml:base="...">
<div xmlns="http://www.w3.org/1999/xhtml"><p><strong>text... text...</strong> text <a href="..."
target="_self">LINK</a>. text</p>
</content>
Я использую следующий код:
$xml = simplexml_load_file($feed_uri);
и затем:
foreach($xml->entry as $entry){
$item = new RSSItem();
$item->title = (string) $entry->title;
$item->content = (string)$entry->content;
$item->date = (string) $entry->published;
Мой элемент содержимого var пуст. Остальные, как и ожидалось
Если я изменю $item-> content = (string)$entry-> content; на $item->content = $entry->content; тогда я получу другой объект, вложенный в переменную $item-> content
Любой ide, как заставить анализатор не интерпретировать элементы, найденные в элементе содержимого (div, p и т.д.), Как вложенные элементы?
Заранее спасибо, L
Ответ №1:
Попробуйте $entry->content->asXML()
.
Комментарии:
1. Я люблю тебя!!! :)))) Спасибо… Это работает, и теперь я пытаюсь понять этот волшебный метод…