2012-06-13 78 views
0

我已經搜索了整個早上和昨天下午,仍然無法找到解決我的問題的方法。如果你能提供幫助,那將是美好的。使用模板參數作爲xml指針的修飾符(xpaths)

我正在使用apache fop將xspl-fo文件轉換爲PDF格式。我正在嘗試使用參數來將xpaths修改爲我的xml文件。這是一個比下面的例子複雜得多的系統,但我已經將其簡化爲問題的根源。

假設我的XML文件的樣子:

<sc931> 
    <whyoming> 
       <train> 
        <miles>98</miles> 
        <time>9888</time> 
    </whyoming> 
    <georgia> 
       <train> 
        <miles>98</miles> 
        <time>9888</time> 
    </georgia> 
</sc931> 

我所要做的是使用模板參數來訪問,像這樣這些值:

參數

<xsl:param name="state" select="whyoming"/> 

宣言致電

<xsl:value-of select="concat(/sc931/, $state, /train/miles)"/> 

但是這個調用不起作用,因爲concat函數返回一個字符串而不是指向正確節點的指針。什麼是使用模板參數修改給定值語句的地址的正確方法?

回答

3

在XSLT 3.0之前,沒有動態的XPath評估,但對於您的簡單情況,只需使用<xsl:value-of select="/sc931/*[local-name() = $state]/train/miles"/>即可。

我忽略了你的參數被定義爲<xsl:param name="state" select="whyoming"/>,你需要將其改爲<xsl:param name="state" select="'whyoming'"/>以供我的建議使用。

+0

你是我的救星!謝謝Martin! – user1454141