XML中的换行符?

ew8*_*w89 20 html xml parsing line break

我是Web开发的初学者,我正在尝试在XML文件中插入换行符.这就是我的XML的样子:

<musicpage>
   <song>
      <title>Song Title</title>
      <lyric>Lyrics</lyric>
   </song>

    <song>
      <title>Song Title</title>
      <lyric>Lyrics</lyric>
   </song>

    <song>
      <title>Song Title</title>
      <lyric>Lyrics</lyric>
   </song>

    <song>
      <title>Song Title</title>
      <lyric>Lyrics</lyric>
   </song>
</musicpage>
Run Code Online (Sandbox Code Playgroud)

我希望在歌词的句子之间有换行符.我尝试了/ n和其他类似的代码,PHP解析等等,但没有任何作用!已经在网上搜索了几个小时,似乎无法找到答案.我正在使用XML使用Javascript将数据插入HTML页面.

有谁知道如何解决这个问题?

这是我用来将XML数据插入HTML页面的JS代码:

<script type="text/javascript">

    if (window.XMLHttpRequest) {
    xhttp=new XMLHttpRequest();
} else {
    xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","xml/musicpage_lyrics.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;

var x=xmlDoc.getElementsByTagName("songs");
for (i=0;i<x.length;i++) {
    document.write("<p class='msg_head'>");
    document.write(x[i].getElementsByTagName("title")[0].childNodes[0].nodeValue);
    document.write("</p><p class='msg_body'>");
    document.write(x[i].getElementsByTagName("lyric")[0].childNodes[0].nodeValue);
    document.write("</p>");
}
</script>
Run Code Online (Sandbox Code Playgroud)

Cha*_*ell 26

@icktoofay与CData关系密切

<myxml>
    <record>
        <![CDATA[
        Line 1 <br />
        Line 2 <br />
        Line 3 <br />
        ]]>
    </record>
</myxml>
Run Code Online (Sandbox Code Playgroud)


Tom*_*lak 22

在XML中,换行符是普通字符.你可以这样做:

<xml>
  <text>some text
with
three lines</text>
</xml>
Run Code Online (Sandbox Code Playgroud)

并且内容<text>将是

some text
with
three lines

如果这不适合你,你做错了.编码换行符的特殊"解决方法"是不必要的.这样的东西\n是行不通的,而另一方面,由于XML没有转义序列*.


*请注意,这&#xA;是表示序列化 XML中的换行符的字符实体."XML没有转义序列"表示与DOM文档交互,通过DOM API设置节点值时的情况.

这是既&#xA;不会\n起作用也不会起作用的地方,而是一个实际的换行符.这个字符在序列化文档(即"文件")中的最终结果取决于API,不应该与您有关.


因为你似乎想知道你的换行符在HTML中:看看你的源代码,它们就在那里.HTML忽略源代码中的换行符.使用<br>标签强制屏幕上的换行符.

这是一个插入<br>多行字符串的JavaScript函数:

function nl2br(s) { return s.split(/\r?\n/).join("<br>"); }
Run Code Online (Sandbox Code Playgroud)

或者,您可以使用CSS强制换行换行:

div.lines {
    white-space: pre-line;
}
Run Code Online (Sandbox Code Playgroud)

  • @ ew89:当然有效.你只是想解决错误的问题. (4认同)
  • 这才是真正的答案.如果一切运行良好,一个简单的换行应该这样做.一些解析器有一个标志来选择性地忽略空格,以便您可以使用它来缩进XML文件,但我怀疑这是你的问题.(也就是说,恕我直言,滥用格式.)XML中的空格是*重要的*,包括用于缩进的制表符/空格. (2认同)

Kus*_*alP 7

在您的行的末尾,只需添加以下特殊字符: &#xD;

该特殊字符定义了回车符.

  • @ ew89:源代码中的换行符不会导致呈现HTML中的换行符.对于HTML,您需要`<br>`标签. (3认同)

小智 5

只需&lt;br&gt;在行尾使用。