xml - 如何在 xslt 中为具有属性的元素不输出空格

标签 xml xslt whitespace xslt-1.0

我有一个 xslt 文档,我想输出一个 anchor (a) 标记,其中包含一些属性,这些属性的值取决于其他事物。因此,我使用 xsl:attribute 标记,并在其下面带有一个 Choose/if (或反之-反之亦然)。所以我的代码如下所示:

<a href="/somepage.html">
  <xsl:if test="current_page='this_page'">
   <xsl:attribute name='class'>active</xsl:attribute>
  </xsl:if>
My Page
</a>

然而,问题是,在输出的 html 中,所有换行符/空格都在那里,这最终使我的链接在其左侧有一个额外的空格(并且带有下划线,使其显而易见)。 所以显而易见的解决方案是这样做:

<a href="/somepage.html"><xsl:if test="current_page='this_page'"><xsl:attribute name='class'>active</xsl:attribute></xsl:if>My Page</a>

去掉空格。上面的代码没什么大不了的,但我的实际页面有更多的逻辑,这使得这真的很难看。我唯一能想到的清理这个问题的另一件事是将逻辑放在链接生成之外,但随后我会重复更多的事情并且必须创建更多变量。这是合理的,但仍然不完全理想。 这只是我想要这样做的一个例子,这种情况发生过几次,所以我只是想知道是否还有其他方法可以解决这个问题。

最佳答案

也许您可以在 XSLT 文档的开头使用它:

<xsl:strip-space elements="a"/>

更新,这有效:

<a href="/somepage.html">
  <xsl:if test="current_page='this_page'">
   <xsl:attribute name='class'>active</xsl:attribute>
  </xsl:if>
  <xsl:text>My Page</xsl:text>
</a>

关于xml - 如何在 xslt 中为具有属性的元素不输出空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3807194/

相关文章:

xml - msdata :Ordinal in an XSD? 的目的到底是什么

html - Css 悬停自定义到 xml

xml - 使用 XSLT 将 HTML 转换为 XML

xml - 如何在 xsl 中使用 xsl 变量

xml - 如何使用xslt2.0检索当前节点的(ancestor::w:p)的先前同级?

vim - vim可以自动识别缩进样式(制表符还是空格)?

xml - xsl :result-document from within Altova XML with Saxon 的奇怪行为

java - 使用 Java DOM 解析器在 XML NODE 中创建换行符

arrays - perl 如何将 perl 脚本的列表形式系统调用的 STDOUT 附加到文件

html - 如何在没有过多评论的情况下摆脱空白?