如何在XML文件中添加换行符(换行符)?

Chr*_*ian 19 xml newline

我有一个XML文件,我想像这样在文本"Sample Text 123"中创建一个新行

Sample
Text 123
Run Code Online (Sandbox Code Playgroud)

我已经尝试过我的意思&#xA &#xD \n但没有任何作用:

    <?xml version="1.0" encoding="UTF-8" ?>
    <item>
        <text>Address</text>
        <data>
            Sample &#xA; Text 123
        </data>
    </item>
Run Code Online (Sandbox Code Playgroud)

kjh*_*hes 27

换行符(又名行中断结束时的线,EOL)是标记文本行的末尾特殊字符或字符序列.使用的确切代码因操作系统而异:

LF:    Unix
CR:    Mac OS up to version 9
CR+LF: Windows, DOS
Run Code Online (Sandbox Code Playgroud)

您可以使用&#xA;换行符(LF)或&#xD;回车符(CR),并且在将解析后的文本移交给应用程序时,XML解析器将使用相应的字符替换它.这些可以手动添加,如您在示例中所示,但在需要以编程方式在字符串中添加换行符时特别方便:

  • 常用编程语言:
    • LF: "&#xA;"
    • CR: "&#xD;"
  • XSLT:
    • LF: <xsl:text>&#xA;</xsl:text>
    • CR: <xsl:text>&#xD;</xsl:text>

或者,如果您想立即在XML中看到它,只需将其放入字面上:

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        Sample
        Text 123
    </data>
</item>
Run Code Online (Sandbox Code Playgroud)

换行还没出现?

请记住,应用程序如何解释文本(包括换行符)取决于它.如果您发现新行被忽略,则应用程序可能会自动同时运行由换行符分隔的文本.

例如,HTML浏览器将忽略换行符(并将规范化文本中的空间,以便合并多个空格).要打破HTML中的行,

  • 使用<br/>; 要么
  • 在诸如a之类的元素中包装块,div或者p默认情况下在封闭文本之后导致换行符,或者在pre默认情况下通常会保留空格和换行符的元素中.要么
  • 使用CSS样式white-space来控制换行渲染.

XML应用程序不合作?

如果XML应用程序不尊重您的换行符,并且在应用程序的处理模型中工作没有帮助,则另一种可能的方法是使用CDATA告诉XML解析器不要解析包含换行符的文本.

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample
                 Text 123]]>
    </data>
</item>
Run Code Online (Sandbox Code Playgroud)

或者,如果下游识别出HTML标记:

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample <br/>
                 Text 123]]>
    </data>
</item>
Run Code Online (Sandbox Code Playgroud)

这是否有帮助将取决于XML通过的XML处理流程中的一个或多个阶段的应用程序定义的语义.

底线

换行符(又名断线结束线,EOL)可以加入很像XML任何字符,但应注意到的

  • 不同的OS惯例
  • 不同的XML应用程序语义

  • 答案已更新。请参阅**换行符仍未显示?** (2认同)