2011-09-29 90 views
1

愛的東西 - 新手在這裏ÆthelredXSLT調用二次基於XML的第一個XML元素/屬性

我有一個XSLT 1.0文件中的一個輔助XML(一個變量)拉來建一個表 <xsl:variable name="table_values" select="document('./table_variants/external_table.xml')/xml/channel_1"/>

然後我得到我從變量所需要的值,例如: <xsl:value-of select="$table_values/monkey/tennis/@medals"/> <xsl:value-of select="$table_values/monkey/tennis/@bananas"/>

我想要做的是有第一個XML觸發/引導到哪裏查找表數據。 我希望我能,觸發XML中,陳述的XPath的最後一部分 - 「CHANNEL_1」或「channel_2」, <xsl:value-of select="xml/external_table_channel_to_use"/> 但顯然我不能像

請即時創建一個XPath的 - 什麼我可不可以做?

+0

你是什麼意思調用一個XML?你想要一個基於一些.xml值的動態xpath? – FailedDev

+0

是的 - (我相信)那就是我所追求的。 是次要文件只是絨毛然後(對問題) –

+0

你不能只考慮所有的可能性,並使用或特定的來覆蓋所有需要嗎?你甚至可以根據你的條件調用特定的命名模板。 – FailedDev

回答

0

我想要做的是有第一個XML觸發/引導到哪裏尋找 爲表數據。我希望我能,觸發XML,狀態 中的XPath的最後一部分中 - 在「CHANNEL_1」或「channel_2」, <xsl:value-of select="xml/external_table_channel_to_use"/>但 顯然我不能像

動態創建的XPath請 - 什麼我可不可以做?

這可以很容易地完成只是擴展您已有的代碼。

更改此

<xsl:variable name="table_values" select= 
"document('./table_variants/external_table.xml')/xml/channel_1"/> 

這個

<xsl:variable name="table_values" select= 
     "document('./table_variants/external_table.xml') 
          /xml/*[name() = $channelName"/> 

不用說,變量(或全球性的,外部PARAM)$channelName應該有一個值是(字符串)要在XPath表達式的上一個位置步驟中使用的元素的名稱。

+0

輝煌 - 謝謝你,謝謝你爲其他人提供的所有其他信息,幫助過我 - 我想知道在我遇到XSLT先生本人之前多久,Dimitre先生;-) –

+0

@Æthelred:不客氣:) –