我試圖找到一種方法來返工此轉換的地方,我沒有使用ancestor::
軸在我的Xpath:避免使用「祖先::」的XPath軸
<xsl:template match="p[ancestor::p]">
<xsl:apply-templates select="node() except ppr" />
</xsl:template>
源的例子:
<root>
<p>
<p/>
<section>
<p/>
</section>
<ppr/>
<content/>
<p/>
<picture/>
</p>
</root>
所需的輸出:
<root>
<p>
<section>
</section>
<ppr/>
<content/>
<picture/>
</p>
</root>
我無法用明確的XPath或定位抓住這些<p>
元素作爲它們的位置是隨機的,並且在我的原始源文檔中沒有圖案。
我試圖不使用ancestor::
的原因是因爲我使用的XSLT處理器花費了30-50秒來評估Xpath表達式。 我不希望這個問題是關於我正在使用的XSLT處理器或其他實現與我的設置,而是專注於手頭的問題:有沒有什麼辦法可以在我的上述變換中不使用ancestor::
?
在此先感謝。
是否有您只使用XSLT的2.0(標籤暗示這一點)的要求? xslt標籤意味着任何版本都可以使用。 –
@Ryan蓋茨,對不起瑞安這有點誤導,這只是XSLT-2.0。 – Laterade
爲什麼不使用'// p // p'? – BeniBela