xml过滤属性

时间:2012-10-24 08:37:19

标签: xml

我试着编写一个xslt模板匹配,它将选择所有不是item =“toy”的产品。不是我的代码,但它不起作用我能知道可能是什么错误吗?

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

2 个答案:

答案 0 :(得分:1)

尝试使用单引号:

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

答案 1 :(得分:1)

您的XML和XSLT存在许多问题,但在创建问题时可能会出现错误。您的XML缺少 xsi 的命名空间声明,而您的apply-templates使用的是双引号而不是单引号。它也是未公开的。

但是,真正的问题是,您说要注意选择产品节点,但您的应用模板实际上是在尝试选择实际的属性。< / p>

试试这个

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

或许这个

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