使用从 xml 到 html 的 xsl 转换来维护空格和换行符

Posted

技术标签:

【中文标题】使用从 xml 到 html 的 xsl 转换来维护空格和换行符【英文标题】:Maintaining whitespaces and line breaks with xsl transformation from xml to html 【发布时间】:2020-12-21 10:02:04 【问题描述】:

我正在尝试编写一个 xslt 以便将 XML 转换为 html。在某个时刻,我有一个 XML 元素,它可以包含用户插入的文本。保留任何额外的空格和换行符很重要(添加额外的换行符以不溢出包含的 div 很好)。

XML 看起来像这样(我添加图像以明确指定其格式):

我试过用

white-space: pre-wrap;

但在最终的 HTML 中,每次 XML 中有换行符时,都会在行首添加一些额外的空格。 XSL 脚本如下所示:

 <xsl:when test="hl7v3:title='event.description'">
     <div>
        <p style="white-space: pre-wrap; text-align:left;"><xsl:copy-of select="./hl7v3:text/hl7v3:paragraph/text()" /></p>
     </div>
 </xsl:when>

结果如下所示:

关于如何解决想法的任何建议?

提前谢谢你

【问题讨论】:

【参考方案1】:

如果您在 XSLT 处理器中使用 HTML 序列化方法,那么它可能会调整其行为以考虑 HTML 元素,例如 pre,但它不会记录任何 CSS 指令。我认为您可能必须关闭缩进(xsl:output indent="no")。如果您使用的是最新的 XSLT 处理器,那么您可以使用 xsl:output 上的 suppress-indentation 选项关闭特定元素的缩进:但即使这样也只考虑 HTML 元素名称,而不考虑 CSS 样式。

【讨论】:

以上是关于使用从 xml 到 html 的 xsl 转换来维护空格和换行符的主要内容,如果未能解决你的问题,请参考以下文章

基于一定条件的xml数据到xsl文件的转换

XSL 转换后在 PDF 中保留空白

如何使用 WebView2 控件对本地文件执行 XML/XSL 转换?

XML -> XSL -> HTML 编辑文件,并在没有 asp 的情况下保存 xml 中的更改

使用 XSL 转换合并两个 XML 文件

通过 xsl 将 XML 转换为 HTML 会导致以下问题:xsl 中的关键函数未提供所需的输出