XML/XSLT:以不同的方式设计类似的标记场景

问题描述 投票:0回答:2
xml xslt xslt-2.0
2个回答
1
投票

匹配

p[not(text())]/b
的模板将仅处理那些没有任何同级文本节点的
b
元素。


0
投票

如果没有您尝试的更多内容,最简洁的挑战可能就是添加样式属性。因此,在这里我只会为您提供可能用于样式属性的片段以及不选择具有非空白同级节点的方法。

<xsl:attribute name="style">
   <xsl:value-of select="'font-size:3em;'"/>
</xsl:attribute>

至于如何选择,如果没有更多的 XML (HTML),您正尝试更新或修复未在 XSLT 中发布的内容,则不容易识别。

<xsl:template match="p/b">
  <xsl:attribute name="style" select="concat('font-size: ', '3em', 'em;')"/>
</xsl:template>

preceding-sibling::node()[not(self::text()[normalize-space()='')][1][self::text()]
应该足以检查第一个不是空白文本节点的前同级节点是文本节点

诸如新行和缩进之类的空白是它们自己的文本节点,因此您可能需要将类似的内容添加到样式表中。

<xsl:strip-space elements="*"/>
© www.soinside.com 2019 - 2024. All rights reserved.