我必须调整一组复杂的 XSLT 文件,但我遇到的问题是它添加了空段落标签,我不知道为什么。我相信它与 for-each 有关,但我不知道这些标签来自哪里,因为转换中的任何地方都没有 p-Tags。
当 for-each 中的某些内容为空时,这是 xsl 可能会自行添加的内容吗?它总是直接在 for-each 之后和 for-each 结束之前(有效地围绕生成的输出)。
如果标签为空,我如何检查 for-each 内部?
感谢您的帮助。
文件主要是这样的结构:
// Base File
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:import href="library.xsl" />
<xsl:output method="html" encoding="utf-8" indent="yes"/>
// Some keys are defined here ...
<xsl:template name="base">
<xsl:call-template name="someTemplate" />
// More templates follow ...
</xsl:template>
</xsl:stylesheet>
library.xsl 现在有这样的模板“someTemplate”:
<xsl:template name="someTemplate">
<xsl:for-each select="[very complicated XPath here]">
// Some HTML generation, but absolutely withoug p-tags!!!!
</xsl:for-each>
</xsl:template>
我已阅读线程XSLT:如何从我的结果中排除空元素?并且还尝试应用命名模式(因为我的文件正在使用 for-each),但它没有成功。