2012-10-24 68 views
1

我試圖寫一個xslt模板匹配,它會選擇所有不是item =「toy」的產品。下面是我的代碼,但它不工作,我可以知道什麼可能是錯誤?xml過濾屬性

<color> 
    <xsl:apply-templates select="//product/@item[not(.='toy')]"> 
    </color> 
+0

也許這是一個命名空間的問題? –

回答

1

有許多與你的XML和XSLT的問題,雖然有些人可能是拼寫錯誤,當你創建你的問題。您的XML缺少xsi的名稱空間聲明,並且您的應用程序模板使用雙引號而不是單引號。它也沒有關閉。

然而,真正的問題是,你說你看選擇產品節點,但您的應用模板實際上是試圖選擇實際項目屬性。

試試這個

<xsl:apply-templates select="//product[not(@xsi:item='toy')]" /> 

或者,也許這

<xsl:apply-templates select="//product[@xsi:item!='toy']" /> 
+0

已經在你的方式上測試過了,的名稱空間問題仍然存在。 – pinkele123

+0

好吧,我發現這個問題,我忘了聲明我的新模板match.thanks的前綴! – pinkele123

1

試着用單引號:

<xsl:apply-templates select="//product/@xsi:item[not(.='toy')]">