我有一個HTML源代碼的樣子:模板匹配問題
<p class="heading-8">Emergency Care<span class="char-style-override-68">, if not already done:</span></p>
<p class="List-Bullet-CHAM1-CHAM-1-List-Bullet-1 para-style-override-3"><span> </span><span class="char-style-override-25">1.</span><span> Do Initial Assessment (p. 72).</span></p>
現在我創造的p模板匹配:
<xsl:template match="x:p">
<xsl:choose>
<xsl:when test="contains(@class,'heading-8')">
<xsl:variable name="current-name" select="generate-id(.)"/>
<xsl:variable name="noTable" select="count(preceding-sibling::x:table)"/>
<p>
<b>
<xsl:apply-templates/>
</b>
</p>
<xsl:if test="following-sibling::*[1][self::x:p][contains(@class,'List-Bullet-CHAM1-CHAM-1')][generate-id(preceding-sibling::x:p[contains(@class,'heading-8 ')][1]) = $current-name]">
<ol>
<xsl:apply-templates select="following-sibling::x:p[contains(@class,'List-Bullet-CHAM1-CHAM-1')][count(preceding-sibling::x:table)=$noTable][generate-id(preceding-sibling::x:p[contains(@class,'heading-8 ')][1]) = $current-name]" mode="bullet"/>
</ol>
</xsl:if>
</xsl:when>
我現在遇到的問題是,它似乎是我如果分支不能進入內部。但我認爲源html完全匹配它,只是不知道我可能是錯的。
PS,我使用了generate-id()函數來確定前一個兄弟節點的身份。
到底是我的問題,謝謝! – Kevin 2012-04-26 18:46:07