2
A
回答
6
如果我們有一個xsl:key
指令:
<xsl:key name='someName' match="patExpr" use="Expr"/>
並向key()
功能一個電話:
key('someName', someExpr, $someDocNode)
這相當於:
($someDocNode//patExpr)[Expr = someExpr]
因此,對於任何特定的鍵,你需要聲明一個函數(命名爲my:keySomeName()
)返回節點序列,其身體上的表達。
例:
如果我們有這樣的xsl:key
指令:
<xsl:key name='kNameByVal' match='Name' use='.'/>
這調用key()
功能:
key('kNameByVal', 'Peter', $doc)
那麼相應的XQuery函數將有本機構:
$doc//Name[. = 'Peter']
萬一key()
函數的第二操作數是一個更復雜的表達式,計算該表達式必須作爲第二個參數將密鑰傳遞函數-implementing函數(因此,這是唯一可能的XQuery中3.0及以上)和我們最終是這樣的:
declare function my:keyNameByVal($funExpr as function($context as node()) as item()*,
$currenDoc as document-node()
) as node()*
{
$currenDoc//Name[. = $funExpr(.) ]
}
的更傳統的非3.0方式是呼叫者計算表達式,並傳遞這個結果計算作爲第一個參數my:keyNameByVal()
功能:
declare function my:keyNameByVal($useExpr as item()*,
$currenDoc as document-node()
) as node()*
{
$currenDoc//Name[. = $useExpr]
}
}
相關問題
- 1. XSLT - 鍵功能
- 2. 用於轉換數據的XQuery vs XSLT
- 3. 的XQuery月功能
- 4. XSLT與XQuery的
- 5. Xquery所有功能
- 6. xquery在另一個函數中調用維護功能
- 7. 使用XSLT的問題鍵()函數
- 8. Sitemesh類似於XSLT的功能嗎?
- 9. 使用XSLT中的功能
- 10. XSLT的Java功能
- 11. 如何調用使用存在-DB和XQuery函數功能使用XPath
- 12. C#中用於SQLCE外鍵的功能
- 13. 使用XSLT小寫功能
- 14. 多收集功能使用XQuery
- 15. Zorba(XQuery) - 使用打印功能
- 16. onclick error調用Xquery函數
- 17. 從XForms調用XQuery函數
- 18. XSLT - 激活的xpath功能在XSLT
- 19. XSLT包含功能
- 20. xslt中的計數器變量功能
- 21. 使提供可用於第二功能一個功能定義的數組鍵
- 22. XQuery遞歸函數
- 23. 將參數從xquery傳遞到xslt
- 24. xslt中的文檔功能
- 25. 的Xquery字符串連接功能
- 26. 關於PHP str_replace函數功能
- 27. 從XSLT運行XQuery轉換
- 28. 如何在xslt中使用按鍵功能v2.0.0
- 29. XQuery中的「Canonical Path」函數?
- 30. XQuery中的min()函數
感謝它做的魔力 – user1890342