如何为XML包含和读取HTML


<myxml>
  <bla>
    I want <strong>HTML here</strong>
  </bla>
</myxml>

如何从XML文档中读取HTML ?

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

ps:不转义,因为每次添加内容时转义文本都很烦人。


编辑:

<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标签包围I want <strong>HTML here</strong>,如下:

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

这将告诉解析器忽略CDATA块内的内容,只将其解析为明文。

显式类型转换是不需要文本节点,它只在那里工作;在这里使用print_r()是错误的函数/语言特性(请使用echo代替)。

要将任何SimpleXML元素的内容打印为XML(其中可能还包含其他元素),请使用其asXML()方法。

最新更新