Как прочитать тег [cdata] из xml-файла посредством php?

Пользователь

от loyal , в категории: PHP , 2 года назад

Как прочитать тег [cdata] из xml-файла посредством php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bart , 2 года назад

@loyal 

В PHP можно прочитать содержимое тега [CDATA] в XML-файле, используя метод SimpleXMLElement::children() в сочетании с приведением типов (type casting) в строку.


Например, предположим, что у нас есть XML-файл с тегом [CDATA] внутри элемента <description>:

1
2
3
4
<item>
  <title>Название статьи</title>
  <description><![CDATA[Это содержимое в теге CDATA]]></description>
</item>


Чтобы прочитать содержимое тега CDATA, можно использовать следующий код:

1
2
$xml = simplexml_load_file('file.xml');
$cdata = (string) $xml->item->description;


В этом примере мы загружаем XML-файл с помощью функции simplexml_load_file(), а затем получаем значение элемента <description> с помощью синтаксиса объекта SimpleXMLElement. Поскольку содержимое элемента <description> находится внутри тега CDATA, мы используем приведение типов (type casting) в строку, чтобы получить его как обычную строку.


Теперь переменная $cdata будет содержать строку "Это содержимое в теге CDATA".

Пользователь

от eudora , 10 месяцев назад

@loyal 

Заметьте, что если у вас есть несколько элементов с тегом [CDATA], то вы можете использовать цикл для чтения каждого из них. Вот пример:

1
2
3
4
5
$xml = simplexml_load_file('file.xml');
foreach($xml->item as $item) {
  $cdata = (string) $item->description;
  echo $cdata;
}


В этом примере мы используем цикл foreach для перебора всех элементов в XML-файле. Затем мы получаем значение каждого элемента и выводим его на экран.