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

时间:2016-02-19 12:03:23

标签: xml newline

我有一个XML文件,我想在文本中添加一个新行 "示例文本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>

1 个答案:

答案 0 :(得分:22)

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

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_height="fill_parent"
        android:layout_width="fill_parent"
        android:id="@+id/relativeLayout1">
        <ImageView
            android:id="@+id/mh011"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="@drawable/mh01"
            android:layout_centerInParent="true"
            android:contentDescription="@null"
            />
        <ImageView
            android:id="@+id/mh022"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:background="@drawable/mh02"
            android:layout_above="@+id/mh011"
            android:layout_centerHorizontal="true" 
            android:contentDescription="@null"
            />
        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/mh033"
            android:background="@drawable/mh_03"
            android:layout_toLeftOf="@+id/mh011"
            android:layout_centerVertical="true"
             android:contentDescription="@null"
            />
        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/mh044"
            android:background="@drawable/mh04"
            android:layout_toRightOf="@+id/mh011"
            android:layout_centerVertical="true"
            android:contentDescription="@null"
            />
        <ImageView
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:id="@+id/mh055"
            android:background="@drawable/mh05"
            android:layout_below="@+id/mh011"
            android:layout_centerHorizontal="true"
             android:contentDescription="@null" 
               />

          > 
        </RelativeLayout>

您可以将LF: Unix CR: Mac OS up to version 9 CR+LF: Windows, DOS 用于换行(LF)或&#xA;用于回车(CR),并且在将解析后的文本移交给应用程序时,XML解析器会将其替换为相应的字符。这些可以手动添加,如您在示例中所示,但在需要以编程方式在字符串中添加换行符时特别方便:

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

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

<xsl:text>&#xD;</xsl:text>

Newline仍未显示?

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

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

  • 使用<?xml version="1.0" encoding="UTF-8" ?> <item> <text>Address</text> <data> Sample Text 123 </data> </item> ;或
  • <br/>div之类的元素中包装块,默认情况下会在所附文本之后导致换行符,或者在p之类的元素中,默认情况下通常会保留空白和换行符;或
  • 使用CSS样式(例如white-space)来控制换行呈现。

XML应用程序不合作?

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

CDATA

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

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

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

底线

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

  • 不同的操作系统惯例
  • 不同的XML应用程序语义