работа с XML в PHP - PullRequest
       7

работа с XML в PHP

0 голосов
/ 17 ноября 2009

У меня есть такая строка:

<info>
<m_album>value1</m_album>     
<m_cat>value2</m_cat>     
<cat_type/>     
<cat_permission>0</cat_permission>     
<m_img_thumb><!--[CDATA[urlvaluetoimage]]--></m_img_thumb>     
<m_img_medium><!--[CDATA[urlvaluetoimage]]--></m_img_medium>     
<m_img_large><!--[CDATA[urlvaluetoimage]]--></m_img_large>     
<m_hot>0</m_hot>     
<album_hot>0</album_hot>     
</info>

Как получить значение из этих тегов, таких как XML в PHP? Пожалуйста, помогите мне и спасибо за ваше внимание!

Ответы [ 2 ]

4 голосов
/ 17 ноября 2009

Возможно, вы захотите заглянуть в расширение SimpleXML , если вы используете PHP5. Предполагая, что файл выше загружен в строку с именем $ xmlstr, вы можете получить доступ к значению m_album следующим образом:

$xml = new SimpleXMLElement($xmlstr);
echo $xml->m_album;
1 голос
/ 17 ноября 2009
<m_img_thumb><!--[CDATA[urlvaluetoimage]]--></m_img_thumb>

- это комментарий, а не текстовая форма. Если вы действительно хотите прочитать содержание комментария, вы можете, например,. загрузить его в DOMDocument и:

$c= $doc->getElementsByTagName('m_img_thumb')[0]->firstChild->data;
$c= $c.substr(7, -2); // remove [CDATA[ and ]] from sides of string

Но это, вероятно, ошибка. Скорее всего, вы хотели использовать раздел CDATA:

<m_img_thumb><![CDATA[urlvaluetoimage]]></m_img_thumb>

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

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

$c= $doc->getElementsByTagName('m_img_thumb')[0]->textContent;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...