我试图编写一个 xslt 模板匹配,它将选择所有不是 item="toy" 的产品。下面是我的代码,但它不起作用我能知道可能是什么错误吗?
<color>
<xsl:apply-templates select="//product/@item[not(.='toy')]">
</color>
我试图编写一个 xslt 模板匹配,它将选择所有不是 item="toy" 的产品。下面是我的代码,但它不起作用我能知道可能是什么错误吗?
<color>
<xsl:apply-templates select="//product/@item[not(.='toy')]">
</color>
尝试使用单引号:
<xsl:apply-templates select="//product/@xsi:item[not(.='toy')]">
您的 XML 和 XSLT 存在许多问题,尽管有些问题可能是您创建问题时的拼写错误。您的 XML 缺少xsi的命名空间声明,并且您的应用模板使用双引号而不是单引号。它也是未封闭的。
但是,真正的问题是您说您观看以选择产品节点,但您的应用模板实际上是在尝试选择实际的项目属性。
试试这个
<xsl:apply-templates select="//product[not(@xsi:item='toy')]" />
或者也许这个
<xsl:apply-templates select="//product[@xsi:item!='toy']" />