我一直在浏览xsl文档,我不确定@ domain $ ne $代表什么。你能帮忙吗?
<xsl:for-each select="./HEADER/META
[(./VALUE[not(text()='')]) and
(./@domain$ne$'PPPI_PROCESS_ORDER') and
(./@domain$ne$'PPPI_PROCESS_ORDER_TEXT') and
(./@domain$ne$'PPPI_MATERIAL') and
(./@domain$ne$'PPPI_MATERIAL_SHORT_TEXT')]"
答案 0 :(得分:2)
正如其他人所指出的那样,这不是有效的XPath(或XSLT)。
但是在XPath 2.0中有一个ne
运算符,意思是“不等于”。它类似!=
,但适用于单个原子值而不是节点集(存在比较)。
ne
很可能是预期的,但$
符号应该用空格替换。
<xsl:for-each select="./HEADER/META
[(./VALUE[not(text()='')]) and
(./@domain ne 'PPPI_PROCESS_ORDER') and
(./@domain ne 'PPPI_PROCESS_ORDER_TEXT') and
(./@domain ne 'PPPI_MATERIAL') and
(./@domain ne 'PPPI_MATERIAL_SHORT_TEXT')]">
我想知道ne
被$
包围的情况发生了什么。
还有一些其他的方法可以让代码更简洁,但这不是你问题的重点。
答案 1 :(得分:0)
除了$经常用来表示变量之外没有找到任何东西,但是在这种情况下它看起来像是一个分隔符,'就像@domain不等于'PPPI_PROCESS_ORDER'但我找不到任何支持它的东西。
匹配或应该匹配哪种数据。
答案 2 :(得分:0)
这在语法上不是有效的XPath(和XSLT)。
以下是一个XSLT 1.0处理器(Saxon 6.5.4)的反应:
SAXON 6.5.4 from Michael Kay
Java version 1.6.0_21
Error at xsl:for-each on line 10 of file:/(Untitled):
Error in expression ./HEADER/META [(./VALUE[not(text()='')]) and (./@domain$ne$'PPPI_PROCESS_ORDER') and (./@domain$ne$'PPPI_PROCESS_ORDER_TEXT') and (./@domain$ne$'PPPI_MATERIAL') and (./@domain$ne$'PPPI_MATERIAL_SHORT_TEXT')]: expected ")", found "$"
Transformation failed: Failed to compile stylesheet. 1 error detected.
Press any key to continue . . .