布尔运算符OR在where子句中使用XSLT

use*_*472 4 xslt

大家好,我试图在与条件中的值进行比较时,为XML中的标记设置固定值.如

<xsl:when test="(//TestInput='XYZA') OR (//TestInput='XYZB') OR (//TestInput='XYZC') OR (//TestInput='XYZD')">abcd</xsl:when>
Run Code Online (Sandbox Code Playgroud)

当我尝试使用带标记的XML运行转换时<TestInput>,它给出了一个错误

Extra illegal tokens: '(', '/', '/', 'TestInput', '=', ''XYZA'', ')', 'OR', '(', '/', '/', 'TestInput', '=', ''XYZB'', ')', 'OR', '(', '/', '/', 'TestInput', '=', ''XYZC'', ')', 'OR', '(', '/', '/', 'TestInput', '=', ''XYZD'', ')'
Run Code Online (Sandbox Code Playgroud)

请帮助我在where子句中使用OR运算符根据条件设置此标记的值.

提前致谢

Mar*_*nen 12

案例与XML/XSLT/XPath有关,因此请使用or而不是OR.

  • 另外请注意,使用XSLT/XPath 2.0,您可以将这种比较简化为`// TestInput =('foo','bar','foobar')`.但是,XSLT/XPath 1.0无法实现这一点. (2认同)