我有我的 xml 的以下部分。

情况1:

 <para>
    <content-style font-style="bold">Affidavit</content-style>
</para>

案例2:
 <para>This is a different <content-style font-style="bold">Affidavit</content-style> case
</para>

如果只有节点存在(案例 1),但如果它也有文本(案例 2),我想要这里的控件调用节模板。我尝试了下面的 xslt,但它不起作用。请让我知道该怎么做。
<xsl:template match="para">
<xsl:choose>
<xsl:when test="child::content-style/node[1]">
<xsl:call-template name="section"/>
</when></xsl:choose>
</xsl:template>

谢谢

最佳答案

从您的示例中,我认为您应该为具有内容样式但没有文本的 para 调用模板部分。
最好的方法是这样的:

<xsl:template match="para" />
<xsl:template match="para[content-style][not ( text() )]">
            <xsl:call-template name="section"/>
</xsl:template>

使用 xsl:when 应该这样做:
<xsl:template match="para" >
    <xsl:choose>
        <xsl:when test="content-style and not(text())">
            <xsl:call-template name="section"/>
        </xsl:when>
    </xsl:choose>
</xsl:template>

关于xslt - 检查是否有节点但没有文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17144674/

10-12 04:35