@leopardo11

Как вытащить данные из CDATA в xml?

<description>
<![CDATA[
Stunning Lucchese villa built in 1705 with many historical associations, set in a formal parkland plus a further 28 hectares of 
]]>
</description>


Есть такой тег в xml, при парсинге cdata игнорируется. точнее когда переводишь xml feed в массив чтобы спарсить, получаю пустой массив, каким образом можно вытащить данные?

XML
[description] => SimpleXMLElement Object

Уже в массиве

'description' => 
    array (size=0)
      empty
  • Вопрос задан
  • 1947 просмотров
Решения вопроса 1
@Tumass
Веб-разработчик
simplexml_load_file('data.xml', null, LIBXML_NOCDATA);
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Попробуйте trim($xml->description) или любой другой способ приведения его к строке.
Ответ написан
neuotq
@neuotq
Прокрастинация
Вот решение с стаковерфлоу stackoverflow.com/questions/6674322/how-to-get-val... :
<![CDATA[Aghia Paraskevi, Skiatos, Greece]]>

$doc = new DOMDocument();
$doc->load('test.xml');
$destinations = $doc->getElementsByTagName("Destination");
foreach ($destinations as $destination) {
    foreach($destination->childNodes as $child) {
        if ($child->nodeType == XML_CDATA_SECTION_NODE) {
            echo $child->textContent . "<br/>";
        }
    }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы