2012-07-08 33 views
2

我想查看我所指的當前節點的父節點是否等於特定值。我做了如下但沒用。上去一個節點,看看父節點是否等於XSLT中的特定節點

例如。

<v:name> 
<v:age> 

在「年齡」時,我試過<xsl:if test='.. = v:name'>。但這是不正確的。什麼是正確的方法?有人可以幫忙嗎?

我在v:name和v:age都是true的模板裏面。有v:年齡不是v:姓名的孩子。我想確保v:age指的是v:name的孩子。這就是我想要的測試屬性。

+0

無法幫助我嗎? – Setinger 2012-07-08 07:29:35

+2

請發佈您擁有的XML樣例以及您想要的XML或HTML或純文本結果,除非簡單地執行' ..'。然而它看起來好像寫了一個模板' ...'是一種更好,更類似XSLT的方法來處理這種檢查。 – 2012-07-08 10:05:08

+0

這需要更多的上下文。請發佈樣本輸入文檔,預期輸出和您目前爲止的樣式表。很可能你可以完全避免在模板模式上使用適當的謂詞。 – 2012-07-08 11:31:54

回答

3

從由OP評論:

我是一個模板,這是既v:namev:age真正的內部。 有v:age的不是v:name的子女。我想 確保v:age我指的是v:name的孩子。這 就是我想要測試屬性中

使用

parent::v:name 

這在xsl:if變爲:

<xsl:if test="parent::v:name"> 
    <!-- Whatever processing is necessary. --> 
</xsl:if> 
+0

謝謝Dimitre ..^_^ – Setinger 2012-07-10 14:27:23

+0

@Setinger:You受歡迎的。 – 2012-07-10 14:27:51

2

使用<xsl:if test="../v:name = 'somevalue'></xsl:if><xsl:if test="parent::v:name = 'somevalue'></xsl:if>

+0

我在v:name和v:age都是true的模板中。有v:年齡不是v:姓名的孩子。我想確保v:age指的是v:name的孩子。這就是我想要的測試屬性。 – Setinger 2012-07-08 07:45:26

+0

'<! - magic - >' – Jasha 2012-07-08 08:31:38

1

我懷疑,當你說你要知道父節點是否「等於」某個特定的值,你的意思是你想知道它的名字是否等於一個特定的值(這會如果你給出了你的輸入和輸出的例子,請馬上清楚)。

如果我的猜想是正確的,請使用<xsl:if test="parent::xyz">

相關問題