[英]XSLT dynamic xpath child selection
我需要通過給定的路徑遞歸選擇子項。 這是我的XML結構:
<items>
<item name="first">
<item name="fist-first">
[...]
</item>
<item name="first-second">
[...]
</item>
[...]
</item>
</items>
我需要按xsl:param傳遞的路徑選擇特定項(例如選擇“ 0-1”以選擇第一個元素的第二個子項)。 我有一個字符串,表示有關其子位置的實際節點路徑。
有人知道這是否可行並給我一些幫助嗎?
我使用撒克遜9.8he。
提前致謝
首先使用tokenize()
函數將$path
轉換為正整數序列,例如(1,4,6),然后調用此遞歸函數:
<xsl:function name="f:by-path" as="element()?">
<xsl:param name="origin" as="element()*"/>
<xsl:param name="path" as="xs:integer*"/>
<xsl:sequence select="
if (empty($path))
then $origin
else $origin[head($path)]/f:by-path(*, tail($path))"/>
</xsl:function>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.