我想为XSLT中的文本输出生成换行符。什么好主意吗?
当前回答
我在这里添加了DOCTYPE指令:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "
">
]>
<xsl:stylesheet xmlns:x="http://www.w3.org/2005/02/query-test-XQTSCatalog"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
这允许我使用&nl;而不是
在输出中产生换行符。与其他解决方案一样,这通常放在<xsl:text>标记中。
其他回答
在xsl:output标记中包含属性Method="text",并在xsl中适当的位置在文本内容中包含换行符。如果您希望XSL源代码保持整洁,请使用实体 你想要一条新线。
<xsl:text xml:space="preserve">
</xsl:text>
我发现了<xsl:text>中的文字换行符和使用
的文字换行符之间的区别。
虽然文字换行符在我的环境中工作得很好(使用Saxon和默认的Java XSLT处理器),但当在. net环境中运行的另一个组执行代码时,我的代码失败了。
更改为实体(
)使我的文件生成代码在Java和. net上一致地运行。
此外,文字换行符很容易被ide重新格式化,当文件由“不知情”的人维护时,可能会无意中丢失。
我在这里添加了DOCTYPE指令:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nl "
">
]>
<xsl:stylesheet xmlns:x="http://www.w3.org/2005/02/query-test-XQTSCatalog"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="2.0">
这允许我使用&nl;而不是
在输出中产生换行符。与其他解决方案一样,这通常放在<xsl:text>标记中。
你可以试试,
<xsl:text>
</xsl:text>
它会起作用的。