我正在使用docbook并使用的模板在我的表条目中插入了零宽字符。哪个好,但如果表条目包含<para>
元素,我需要应用模板 NOT 。那么,我是否可以将模板应用于不包含<entry>
的所有<para>
?
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:d="http://docbook.org/ns/docbook">
<xsl:import href="urn:docbkx:stylesheet"/>
...
<xsl:template match="text()[parent::d:entry]">
<xsl:call-template name="intersperse-with-zero-spaces">
<xsl:with-param name="str" select="."/>
</xsl:call-template>
</xsl:template>
...
答案 0 :(得分:2)
<xsl:template match="d:entry[not(d:para)]">
匹配任何entry
个没有para
个孩子的元素。 <xsl:template match="d:entry[not(descendant::d:para)]">
匹配任何entry
个没有para
个后代的元素。
或者对于您发布的模板,您可以使用<xsl:template match="text()[parent::d:entry[not(d:para)]]">
。
答案 1 :(得分:1)
<xsl:template match="text()[parent::d:entry[not(.//d:para)]]">
<xsl:call-template name="intersperse-with-zero-spaces">
<xsl:with-param name="str" select="."/>
</xsl:call-template>
</xsl:template>