我有一个XML文件,我想像这样在文本“Sample Text 123”中创建一个新行
Sample
Text 123
我已经尝试过我的意思


\n
,但没有任何作品:
<?xml version="1.0" encoding="UTF-8" ?>
<item>
<text>Address</text>
<data>
Sample 
 Text 123
</data>
</item>
换行符(也就是换行符或行尾,EOL)是标记文本行结尾的特殊字符或字符序列。使用的确切代码因操作系统而异:
LF: Unix
CR: Mac OS up to version 9
CR+LF: Windows, DOS
您可以将

用于换行(LF)或
用于回车(CR),并且在将解析后的文本移交给应用程序时,XML解析器将使用相应的字符替换它。这些可以手动添加,如您在示例中所示,但在需要以编程方式在字符串中添加换行符时特别方便:
LF
:"
"
CR
:"
"
LF
:<xsl:text>
</xsl:text>
CR
:<xsl:text>
</xsl:text>
或者,如果您想立即在XML中查看它,只需将其放入字面上:
<?xml version="1.0" encoding="UTF-8" ?>
<item>
<text>Address</text>
<data>
Sample
Text 123
</data>
</item>
请记住,应用程序如何解释文本(包括换行符)取决于它。如果您发现新行被忽略,则应用程序可能会自动同时运行由换行符分隔的文本。
例如,HTML浏览器将忽略换行符(并将规范化文本中的空间,以便合并多个空格)。要打破HTML中的行,
<br/>
;要么div
或p
,默认情况下会在封闭文本后生成换行符,或者在pre
这样的元素中,默认情况下通常会保留空格和换行符;要么white-space
)来控制换行渲染。如果XML应用程序不尊重您的换行符,并且在应用程序的处理模型中工作没有帮助,则另一种可能的方法是使用CDATA
告诉XML解析器不要解析包含换行符的文本。
<?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处理流程中的一个或多个阶段的应用程序定义的语义。
换行符(也就是换行符或行尾,EOL)可以像XML中的任何字符一样添加,但请注意
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;