嗨,我在XML中有以下两种情况。
情况1:
<para num="01"><page num="05"/>abcdefghij ancfrgthig</para>
情况2:
<para num="01">abcdefgrghy sdfdfhrtfd<page num="05"/></para>
情形3:
<para num="01"><span class="bold">abcdefgrghy sdfdfhrtfd</span><page num="05"/></para>
CASE4:
<para num="01"><span class="bold">abcdefgrghy</span><page num="05"/> sdfdfhrtfd</para>
Case5:
<para num="01"><span class="bold">abcdefgrghy</span> sdfdfhrtfd<page num="05"/> </para>
Case5:
<para num="01"><span class="bold">abcdefgrghy sdfdfhrtfd</span><page num="05"/> </para>
我需要区分这两种情况,因为我想为每种情况制作不同的模板。
我直接使用<xsl:apply-templates/>
,但是如果我有上述第一种情况,首先需要通过para模板调用页面模板。
由于
答案 0 :(得分:0)
感谢您的宝贵意见,我已经解决了我的问题,以下是解决方案。
<xsl:choose>
<xsl:when test="child::node()[1][self::*]">
<xsl:apply-templates select="child::page[1]"/>
<div class="para">
<xsl:call-template name="phrase"/>
<xsl:apply-templates select="child::node()[not(self::page)]"/>
</div>
</xsl:when>
<xsl:otherwise>
<div class="para">
<xsl:call-template name="phrase"/>
<xsl:apply-templates/>
</div>
</xsl:otherwise>
</xsl:choose>
再次感谢!