我通过XML输出"HTML字符串代码"时遇到了麻烦.我在下面给出了一个例子.在服务器端,我有一些用PHP编写的代码.
$htmlCode = "<div>...........................</div>";
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
echo "<info>";
echo "<htmlCode>";
echo $htmlCode;
echo "</htmlCode>";
echo "</info>";
Run Code Online (Sandbox Code Playgroud)
问题在于"HTML字符串代码"或上面的$ htmlCode具有标记元素,因此"HTML字符串代码"将被视为XML代码.我希望将输出视为字符串.
在客户端,我有一个"AJAX调用"来检索HTML代码的字符串.
document.getElementById('someID').innerHTML=xmlhttp.responseXML.getElementsByTagName("htmlCode")[0].childNodes[0].nodeValue;//I got nothing because the string is treated as XML code.
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?我希望我有足够的具体能让你理解我的问题.
你在找CDATA.
术语CDATA用于不应由XML解析器解析的文本数据.
解析器会忽略CDATA部分内的所有内容.
CDATA部分以以下内容开头
<![CDATA[并以]]>:
// escape closing tags
$htmlCode = str_replace("]]>", "<![CDATA[]]]]><![CDATA[>]]>", $htmlCode);
echo "<?xml version='1.0' encoding='ISO-8859-1'?>";
echo "<info>";
echo "<htmlCode>";
echo "<![CDATA[".$htmlCode."]]>";
echo "</htmlCode>";
echo "</info>";
Run Code Online (Sandbox Code Playgroud)
从这里添加了转义修复