Вопрос по XML

kkkoopp

Постоялец
Регистрация
18 Май 2010
Сообщения
120
Реакции
24
Есть XML-код, типа такого:

HTML:
<passages>
<passage>
Мама мыла
<hlword>
Милу
</hlword>
мылом!
</passage>
</passages>

Если получить эту строку через simplexml_load_string и обратиться к passage:
echo $xml->passage;

то оно выведет только текст без того, который находится между <hlword> </hlword>, т.е. Мама мыла мылом!

Каким образом можно получить весь текст, находящийся между <passage> </passage>, чтобы было "Мама мыла Милу мылом!"?
 
Мне кажется так нельзя делать в xml, но могу ошибаться
 
PHP:
strip_tags($xml->passage->asXML())
будет
Код:
Мама мыла Милу мылом!

так если в xml надо передать текст с тегами, то их надо экранировать от xml тегов с CDATA
PHP:
<?
$string = <<<XML
<?xml version='1.0'?>
<passages>
    <passage><![CDATA[Мама мыла <hlword>Милу</hlword> мылом!]]></passage>
</passages>
XML;
 
$xml = simplexml_load_string($string);
echo $xml->passage;
будет
Код:
Мама мыла <hlword>Милу</hlword> мылом!
 
а вобще лучше юзать json ... давно еще писал большой проект который в дальнейшем пришлось перевести на json так теперь в сторону xml вобще криво смотрю )) возможно ошибаюсь в своих убеждениях ^^
 
Назад
Сверху