Вопрос по XML

Тема в разделе "Как сделать...", создана пользователем kkkoopp, 27 апр 2012.

  1. kkkoopp

    kkkoopp Постоялец

    Регистр.:
    18 май 2010
    Сообщения:
    121
    Симпатии:
    24
    Есть XML-код, типа такого:

    HTML:
    <passages>
    <passage>
    Мама мыла
    <hlword>
    Милу
    </hlword>
    мылом!
    </passage>
    </passages>
    Если получить эту строку через simplexml_load_string и обратиться к passage:
    echo $xml->passage;

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

    Каким образом можно получить весь текст, находящийся между <passage> </passage>, чтобы было "Мама мыла Милу мылом!"?
     
  2. BFox

    BFox

    Регистр.:
    11 янв 2008
    Сообщения:
    368
    Симпатии:
    65
    Мне кажется так нельзя делать в xml, но могу ошибаться
     
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    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> мылом!
     
    kkkoopp нравится это.
  4. Easy.proger

    Easy.proger Создатель

    Регистр.:
    1 май 2012
    Сообщения:
    22
    Симпатии:
    1
    а вобще лучше юзать json ... давно еще писал большой проект который в дальнейшем пришлось перевести на json так теперь в сторону xml вобще криво смотрю )) возможно ошибаюсь в своих убеждениях ^^