2014-01-28 26 views
0

我有以下內容的XML文件中獲取在XML特定值的文本? 我嘗試的所有東西都給了我text1。如何使用XSLT

例如:

<xsl:if test="option/test/@attr='a'"> 
<xsl:value-of select="option/test"/> 
</xsl:if> 

回答

1

此XPath應該讓你的文本2值:

option/test[@attr='b'] 

它有效地寫着「選擇具有生成的attr屬性與‘B’的值的測試元件」。

所以,你可以使用這樣的:

<xsl:value-of select="option/test[@attr='b']"/> 

,而不需要爲xsl:if

+2

這將在文檔中的任何位置找到''元素,而不僅僅是那些是'

+0

@keshlam雖然這是非常真實的,並且考慮到OP指出這是他們的XML的內容,但我認爲在這種情況下它是允許的。這是謂詞,我試圖通過這一點,因此解釋。 –

+2

由於OP不知道如何使用謂詞,我認爲假設他們不知道使用雙斜槓的問題是安全的。在那種情況下,我要麼明確說明正在做什麼,要麼使用更高效的XPath。我們不希望他們學習壞習慣。 –

1

您需要使用謂詞來指定「test」的attr的值爲'a'「。

option/test[@attr='a'] 

您還需要了解相對和絕對的XPath之間的差別,並知道什麼情況下你是從調用路徑 - 您使用相對路徑如果當前節點是它只會工作option的父母。

+0

您的XPath將根據OP的要求選擇帶有「text1」的元素,而不是帶有「text2」的元素。 –

+0

OP的問題提到了'a'和text2。相反,浪費時間的協調,我翻了一枚硬幣,相信如果我錯了,相關的變化是顯而易見的。 – keshlam