我试图写一个xslt模板匹配,它会选择所有不是item =“toy”的产品。下面是我的代码,但它不工作,我可以知道什么可能是错误?xml过滤属性
<color>
<xsl:apply-templates select="//product/@item[not(.='toy')]">
</color>
我试图写一个xslt模板匹配,它会选择所有不是item =“toy”的产品。下面是我的代码,但它不工作,我可以知道什么可能是错误?xml过滤属性
<color>
<xsl:apply-templates select="//product/@item[not(.='toy')]">
</color>
有许多与你的XML和XSLT的问题,虽然有些人可能是拼写错误,当你创建你的问题。您的XML缺少xsi的名称空间声明,并且您的应用程序模板使用双引号而不是单引号。它也没有关闭。
然而,真正的问题是,你说你看选择产品节点,但您的应用模板实际上是试图选择实际项目属性。
试试这个
<xsl:apply-templates select="//product[not(@xsi:item='toy')]" />
或者,也许这
<xsl:apply-templates select="//product[@xsi:item!='toy']" />
已经在你的方式上测试过了,
好吧,我发现这个问题,我忘了声明我的新模板match.thanks的前缀! – pinkele123
试着用单引号:
<xsl:apply-templates select="//product/@xsi:item[not(.='toy')]">
也许这是一个命名空间的问题? –