2012-03-05 21 views
3

姆......如何EVAL一個XSL構建XPath表達式

<xsl:value-of select="$document/@*[name() eq $attrName]"/> 

似乎是解決方案... 問候, 克里斯托夫

我有一個包含屬性的名稱的變量進行查詢。我如何編寫這樣的XPath表達式? 這裏是我想要做的

<xsl:variable name="attrName" select="$config//conf:document[@id=$docId]/@archive-ventil-attr"/> 
<xsl:value-of select="$document/@{$attrName}"/> 

我使用XSLT 2.0

非常感謝提前, 克里斯托夫

+2

回答自己的問題的正常方法是添加一個包含答案的「答案」,然後接受它(單擊選中標記)。或者,由於您基本上使用了@ Martin的答案,您可以接受該答案。 – LarsH 2012-03-05 21:55:49

+0

@LarsH,我不認爲這個用戶會迴應..我遇到過很多這樣的用戶,誰創建帳戶問一個問題,得到答案後忘記它..他們將永遠不會回來:)所以只會有1 Q在活動歷史中。 – 2012-03-06 14:00:35

回答

2

有了一個完整的XPath表達式是什麼一個例子,你會需要一個評估功能XSLT 1.0和2.0僅作爲擴展使用,請參閱http://www.saxonica.com/documentation/extensions/functions/evaluate.xml(這也表明XSLT 3.0獲得xsl:evaluate指令)。

只要你有一個本地名稱的字符串,它應該足以使用<xsl:value-of select="$elements/@*[local-name() = $attrName]"/>。假定$elements是元素節點的節點集(XPath 1.0)或序列(XPath 2.0)。

+0

非常感謝,這就是我所嘗試過的。不幸的是,我僅限於Saxon-HE,所以xsl:評估對我來說不是一個解決方案。 – 2012-03-05 13:45:07