缺少行,因为在xml中

时间:2010-09-12 09:56:22

标签: php javascript xml ajax

我有一个像这样的xml:

<cont><?php echo nl2br($cont); ?></cont>

回复是:

<cont>
2<br/>
3<br/>
4<br/>
</cont>

在页面中代码为:

mainParentElement = document.getElementById('div_cont');
RemoveAllChildElements(mainParentElement);
mainParentElement.innerHTML = "<div class=\'div_cont\'>" + xmlDoc.getElementsByTagName('cont')[0].childNodes[0].nodeValue +  "</div>";

在这种情况下,div中的结果只是第一行。 (2) 如果我删除nl2br,结果就是所有行。 (当然没有<br>

如何添加<br>

谢谢你!

2 个答案:

答案 0 :(得分:0)

了解CDATA

有些字符不允许作为XML标记的内容,例如<,因为对于解析器,它们标记了标记的开头(显然)。
因此,如果您希望将这些数据作为标记的内容,则必须以某种方式转义。在XML中,这是通过将内容包装到<![CDATA[ ... ]]>来完成的,<cont><![CDATA[<?php echo nl2br($cont); ?>]]></cont> 明确告诉解析器不解释包含的数据(将其视为 C haracter DATA )。

基本上你必须这样做:

{{1}}

答案 1 :(得分:0)

添加<br/>将创建新的xml节点。然后将您的内容分为:

2 (text node)
<br/> (xml node)
3 (text node)
<br/> (xml node)
4 (text node)
<br/> (xml node)

(缺少更好的单词的xml节点)

为什么需要添加这些换行符?如果它是用于演示,我建议在呈现它们之前添加它们