如何使用XSLT1.0在XML中显示不可见的换行符
这就是我的XML输出中显示的内容(请注意换行符)如何使用XSLT1.0在XML中显示不可见的换行符,xml,xslt,Xml,Xslt,这就是我的XML输出中显示的内容(请注意换行符) 这是一个测试 这是一个测试 这是一个测试 在我的样式表中 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:user-scripts"> <xsl:output method="html" omit
这是一个测试
这是一个测试
这是一个测试
在我的样式表中
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:user-scripts">
<xsl:output method="html" omit-xml-declaration="yes" standalone="yes" indent="yes" cdata-section-elements="script msxsl:script"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/Root">
<xsl:apply-templates select="Item"/>
</xsl:template>
<xsl:template match="Item[@type='Comment']">
<html>
<head>
<title>
Comment: <xsl:value-of select="comment_no"/>
</title>
</head>
<style>
* {
font-family: "Arial", sans-serif;
font-size: 10pt;
}
body {
min-width: 775px;
max-width: 775px;
margin-left: auto;
margin-right: auto;
}
td {
padding: 0px;
}
.layoutTable {
width: 100%;
}
.fieldValue {
width: 99%;
padding-left: 7px;
}
.layoutTable {
width: 100%;
}
div.layoutBin {
page-break-inside: avoid;
overflow: hidden;
border: solid;
border-width: 1px;
margin-bottom: 10px;
padding-left: 3px;
padding-right: 3px;
}
</style>
<body>
<div class="layoutBin" id="keyInfo">
<div class="left" style="width: 25%">
<table class="layoutTable">
<tr>
<td class="fieldValue">
<xsl:value-of select="comment"/>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
评论:
* {
字体系列:“Arial”,无衬线;
字号:10pt;
}
身体{
最小宽度:775px;
最大宽度:775px;
左边距:自动;
右边距:自动;
}
运输署{
填充:0px;
}
.可布局{
宽度:100%;
}
.字段值{
宽度:99%;
左侧填充:7px;
}
.可布局{
宽度:100%;
}
分区布局箱{
内部分页符:避免;
溢出:隐藏;
边框:实心;
边框宽度:1px;
边缘底部:10px;
左:3倍;
右侧填充:3px;
}
将删除换行符,而“我的浏览器”将在单行中显示结果
如何保留/显示换行符?在HTML中,换行符通常不重要。它们的处理方式与其他空白相同-转换为单个单词空间。因此,通过查看页面无法判断DOM中是否存在文字换行 您有几个选择:
空白:pre代码>或空白:预换行代码>。(这是最简单的,因为您已经在编写自己的CSS了)。注意:这也会使插入的所有其他文本变得重要,因此您可能需要使用xsl:text
标记
br
标记代替换行符div
s(或段落或类似内容)元素最初可能看起来就是您要查找的。将它放在样式表的顶部,其中包含以空格分隔的元素列表,您希望逐字保留这些元素的空白-但是,只有在使用
xsl:strip space
时才需要它,而您似乎没有使用它。在HTML中,换行符通常不重要。换行符与其他空格的处理方式相同-转换为单个单词空格。因此,通过查看页面无法判断DOM中是否存在文字换行
您有几个选择:
空白:pre代码>或空白:预换行代码>。(这是最简单的,因为您已经在编写自己的CSS了)。注意:这也会使插入的所有其他文本变得重要,因此您可能需要使用xsl:text
标记
br
标记代替换行符div
s(或段落或类似内容)元素最初可能看起来就是您要查找的。将它放在样式表的顶部,用空格分隔的元素列表逐字保留其空格-但是,只有在使用
xsl:strip space
时才有必要这样做,而您似乎没有这样做。请编辑您的Q,说明您使用的xslt引擎和版本。祝你好运。请发布一个可复制的示例,包括完整的样式表。使用您的示例不会删除换行符-但如果您正在输出HTML,浏览器将不会呈现换行符。已经有人问过同样的问题:您能告诉我如何将其应用到我的示例中吗?我完全看不懂那篇文章中建议的解决方案(这里完全是新手),请编辑您的Q,说明您使用的xslt引擎和版本。祝你好运。请发布一个可复制的示例,包括完整的样式表。使用您的示例不会删除换行符-但如果您正在输出HTML,浏览器将不会呈现换行符。已经有人问过同样的问题:您能告诉我如何将其应用到我的示例中吗?我完全看不到那篇文章中建议的解决方案(这里是新手)xsl:strip space
和xsl:preserve space
处理只包含空格字符的文本节点-因此在这里是不相关的。CSS选项似乎没有改变任何东西。不确定如何执行#2和#3-我如何为此编写xsl代码?xsl:strip space
和xsl:preserve space
处理只包含空白字符的文本节点-因此在这里不相关。CSS选项似乎没有改变任何东西。不确定如何执行#2和#3-如何为此编写xsl代码?
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:user="urn:user-scripts">
<xsl:output method="html" omit-xml-declaration="yes" standalone="yes" indent="yes" cdata-section-elements="script msxsl:script"/>
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="/Root">
<xsl:apply-templates select="Item"/>
</xsl:template>
<xsl:template match="Item[@type='Comment']">
<html>
<head>
<title>
Comment: <xsl:value-of select="comment_no"/>
</title>
</head>
<style>
* {
font-family: "Arial", sans-serif;
font-size: 10pt;
}
body {
min-width: 775px;
max-width: 775px;
margin-left: auto;
margin-right: auto;
}
td {
padding: 0px;
}
.layoutTable {
width: 100%;
}
.fieldValue {
width: 99%;
padding-left: 7px;
}
.layoutTable {
width: 100%;
}
div.layoutBin {
page-break-inside: avoid;
overflow: hidden;
border: solid;
border-width: 1px;
margin-bottom: 10px;
padding-left: 3px;
padding-right: 3px;
}
</style>
<body>
<div class="layoutBin" id="keyInfo">
<div class="left" style="width: 25%">
<table class="layoutTable">
<tr>
<td class="fieldValue">
<xsl:value-of select="comment"/>
</td>
</tr>
</table>
</div>
</div>
</body>
</html>
</xsl:template>
</xsl:stylesheet>