пропущенные строки, потому что <br>в XML - PullRequest
0 голосов
/ 12 сентября 2010

у меня есть 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 голосов
/ 12 сентября 2010

добавление <br/> создаст новые узлы xml. Ваш контент затем делится на:

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

(узел xml из-за отсутствия лучшего слова)

зачем вам добавлять эти переводы строк? если это для презентации, я предлагаю добавить их непосредственно перед тем, как представить их

0 голосов
/ 12 сентября 2010

Читать о CDATA.

Существуют символы, которые не допускаются в качестве содержимого тегов XML, например <, потому что для синтаксического анализатора они отмечают начало тега (очевидно).
Поэтому, если вы хотите иметь такие данные, как содержимое тега, вам нужно как-то экранировать . В XML это делается путем помещения содержимого в <![CDATA[ ... ]]>, что явно указывает синтаксическому анализатору не интерпретировать содержащиеся в нем данные (обрабатывать его как C haracter DATA ).

В основном вам нужно сделать:

<cont><![CDATA[<?php echo nl2br($cont); ?>]]></cont>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...