在xslt中选择多个属性值

在xslt中选择多个属性值,xslt,Xslt,当我尝试用match编写模板时,我没有得到正确的结果 输入: <row> <entry align="left" nameend="8" namest="1" valign="top"> <p type="Table Title">TABLE 12.  ELECTRICITY GENERATION (BILLION kW<tps:c type="_Table Light Blue grid ALL">·</

当我尝试用match编写模板时,我没有得到正确的结果

输入:

<row>
   <entry align="left" nameend="8" namest="1" valign="top">
      <p type="Table Title">TABLE 12.  ELECTRICITY GENERATION
         (BILLION kW<tps:c type="_Table Light Blue grid ALL">·</c>h) IN ALTERNATIVE
      SCENARIOS</p>
   </tps:entry>
   <entry align="left" nameend="8" namest="1" valign="top">
      <p type="Table Title">TABLE 12.  ELECTRICITY GENERATION
         (BILLION kW<tps:c type="_Table Blue grid ALL">·</c>h) IN ALTERNATIVE
      SCENARIOS</p>
   </tps:entry>
</row>

表12.发电量
(十亿千瓦时)替代方案
情景

表12.发电量 (十亿千瓦时)替代方案 情景

使用的代码:

<xsl:template match="entry/p/c[@type != ('_Table Blue grid ALL' , '_Table Light Blue grid ALL' , '_Table Light Blue')]

如果
c
值不等于所选值中的一个,而不是全部,则当前表达式将返回true,因此实际上它将始终为true

你想这么做

<xsl:template match="entry/p/c[not(@type = ('_Table Blue grid ALL' , '_Table Light Blue grid ALL' , '_Table Light Blue'))]" />

请注意,这假设您考虑了名称空间(可能使用
xpath默认名称空间