我有一个xml文件
<text>
<defalut>This file has the following features:</defalut>
<value>
<ul>
<li><info>CSS text formatting </info></li>
<li><info>Text loaded from a XML</info></li>
<li><info>Scrolls with easing</info></li>
<li><info>Mouse wheel supported</info></li>
<li><info>HTML supported</info></li>
<li><info>Click on the bar to move the handle to that point</info></li>
<li><info>Supports images</info></li>
<li><info>The scrollbar hides if not needed</info></li>
<li><info>The scrollbar resizes proportonal to the text sizeq</info></li>
</ul>
</value>
<tittle>Lorem Ipsum</tittle>
</text>
我正在使用xpath和xquery来解析此文件
$xml_str1 = file_get_contents("file.xml");
echo $xml_str = $xml_str.$xml_str1;
$xml = simplexml_load_string($xml_str);
$nodes = $xml->xpath('//text');
但我只收到字符串。
如何在结果中保留html标记
如果iam正在解析<value>
标记,我将收到不包含<ul>
和<li>
的内容。如何在<value>
标记中获取完整的html内容,因为它是
提前致谢
答案 0 :(得分:1)
$nodes = $xml->xpath('//text/value');
答案 1 :(得分:1)
我不是100%肯定我会关注你的问题,但我的直觉告诉我你正在寻找CDATA部分:
<text>
<defalut>This file has the following features:</defalut>
<value>
<![CDATA[
<ul>
<li><info>CSS text formatting </info></li>
<li><info>Text loaded from a XML</info></li>
<li><info>Scrolls with easing</info></li>
<li><info>Mouse wheel supported</info></li>
<li><info>HTML supported</info></li>
<li><info>Click on the bar to move the handle to that point</info></li>
<li><info>Supports images</info></li>
<li><info>The scrollbar hides if not needed</info></li>
<li><info>The scrollbar resizes proportonal to the text size</info></li>
</ul>
]]>
</value>
<tittle>Lorem Ipsum</tittle>
</text>
或者你可以逃脱所有<
和>
个字符:
<text>
<defalut>This file has the following features:</defalut>
<value>
<ul>
<li><info>CSS text formatting </info></li>
<li><info>Text loaded from a XML</info></li>
<li><info>Scrolls with easing</info></li>
<li><info>Mouse wheel supported</info></li>
<li><info>HTML supported</info></li>
<li><info>Click on the bar to move the handle to that point</info></li>
<li><info>Supports images</info></li>
<li><info>The scrollbar hides if not needed</info></li>
<li><info>The scrollbar resizes proportonal to the text size</info></li>
</ul>
</value>
<tittle>Lorem Ipsum</tittle>
</text>
答案 2 :(得分:0)
解析文件后,它会被加载到DOM表示中,该表示是所有节点的内存树。要获取HTML,您必须序列化包含XML的节点。
答案 3 :(得分:0)
使用asXML(),SimpleXMLElement :: asXML - 返回基于SimpleXML元素的格式良好的XML字符串
$result = $xml->xpath('//text');
echo $result[0]->asXML();
答案 4 :(得分:0)
不需要CDATA 我们可以简单地使用
$result = $xml->xpath('//text');
echo $result[0]->asXML();
它将加载HTML内容