0
尋找以下解決方案: 這是我的javascript函數,它將參數設置爲我的xsl文件,並且此參數包含具有xpath合成器的字符串查詢將param作爲xpath expressin傳遞給XSLT- javascript
queryFilter = "*/person[name='John']";
function getXSLDoc(xslDocument,xmlDocument,queryFilter) {
..
var processor = new XSLTProcessor();
processor.setParameter(null,"name",queryFilter);
....
}
現在我的XSLT文件,我想借此queryFilter字符串,並以循環使用它,或者創建一個變量:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="html" indent="yes"/>
<xsl:param name="queryFilter"/>
<!-- Lets say I want to create a local variable and use it to loop on a node -->
<xsl:variable name="varFilter" select="$queryFilter"/>
<xsl:for-each select="$**varFilter**">
<tr>
<xsl:apply-templates select="name"/>
..
</tr>
</xsl:for-each>
</xsl:stylesheet>
現在我如何才能用我在我的JavaScript功能設置爲帕拉姆一個xpath表達式?
這XSLT文件無效。沒有模板。我建議重寫你的XSLT。 – 2013-12-09 04:48:03
你試過簡單地使用參數* as as *,即''? –
我相信你所要做的是動態評估xpath,這在XSLT 1.0(或2.0)中是不受支持的,我想。你可以使用擴展函數來做到這一點。例如,查看http://www.exslt.org/dyn/index.html。 –