Как включить и прочитать HTML для XML? - PullRequest
2 голосов
/ 29 августа 2011
<myxml>
  <bla>
    I want <strong>HTML here</strong>
  </bla>
</myxml>

Как я могу прочитать HTML из документа XML?

$data = file_get_contents('myxml.xml');
$xml = new SimpleXMLElement($data);
print_r($xml); // fail...

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


edit:

<myxml>
  <bla><![CDATA[I want <strong>HTML here</strong>]]></bla>
</myxml>

PHP:

$xml = simplexml_load_file('myxml.xml');
print_r($xml);

и вывод:

SimpleXMLElement Object
(
    [bla] => SimpleXMLElement Object
        (
        )

)

нет cdata там ..

Ответы [ 2 ]

3 голосов
/ 29 августа 2011

Окружите свои I want <strong>HTML here</strong> тегами CDATA, например:

<![CDATA[
    I want <strong>HTML here</strong>
]]>

Это скажет парсерам игнорировать то, что находится внутри блока CDATA, и просто проанализировать его как открытый текст.

0 голосов
/ 30 августа 2011

Явное приведение типов не требуется для текстовых узлов, и оно работает только там;print_r() является неправильной функцией / языковой функцией для использования здесь (используйте echo).

Для печати содержимого любого элемента SimpleXML в виде XML (который может также содержать другие элементы) используйте его asXML () метод.

...