使用从 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 转换来维护空格和换行符的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 WebView2 控件对本地文件执行 XML/XSL 转换?