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

How to add a newline (line break) in XML file?

我有一个 XML 文件,我想在文本中换行 "Sample Text 123"这样

Sample
Text 123

我已经尝试了所有我想说的 &#xA &#xD \n 但没有任何效果:

    <?xml version="1.0" encoding="UTF-8" ?>
    <item>
        <text>Address</text>
        <data>
            Sample &#xA; Text 123
        </data>
    </item>

A 换行符(又名换行符换行符EOL) 是标记一行文本结束的特殊字符或字符序列。使用的确切代码因操作系统而异:

LF:    Unix
CR:    Mac OS up to version 9
CR+LF: Windows, DOS

您可以使用 &#xA; 换行 (LF) 或 &#xD; 回车 return (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>

换行符还没有出现?

请记住,应用程序如何解释文本(包括换行符)取决于它。如果您发现换行符被忽略,可能是应用程序自动将换行符分隔的文本一起运行。

例如,

HTML 浏览器会忽略换行符(并且会规范化文本中的 space,以便合并多个 space)。在 HTML、

中换行
  • 使用<br/>;或
  • divp 等元素中换行,默认情况下会在封闭文本后换行,或者在 pre 这样的元素中换行,默认情况下通常会保留白色space 和换行符;或
  • 使用 CSS 样式,例如 white-space 来控制换行渲染。

XML 应用程序不合作?

如果 XML 应用程序不尊重您的换行符,并且在应用程序的处理模型中工作也无济于事,另一种可能的方法是使用 CDATA 告诉 XML parser not 解析包含的文本 换行符。

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample
                 Text 123]]>
    </data>
</item>

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

<?xml version="1.0" encoding="UTF-8" ?>
<item>
    <text>Address</text>
    <data>
        <![CDATA[Sample <br/>
                 Text 123]]>
    </data>
</item>

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

底线

A 换行符(又名换行符换行符EOL) 可以像 XML 中的任何字符一样添加,但要注意

  • 不同的OS约定
  • 不同的 XML 应用语义