Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XSLT 1.0:基于current()节点前面同级的属性进行选择_Xslt_Xpath_Xslt 1.0 - Fatal编程技术网

XSLT 1.0:基于current()节点前面同级的属性进行选择

XSLT 1.0:基于current()节点前面同级的属性进行选择,xslt,xpath,xslt-1.0,Xslt,Xpath,Xslt 1.0,我有一个基本xml文件,如: <base> ... <s l="something" /> <s l="somethingelse" /> <s> ... </base> 在基本文件的中,我试图选择所有的@l与当前的任何前面的同级::*/@l不匹配的。因此,对于没有属性的第三个,它将匹配等 比如: <xsl:for-each select="document('mydoc.xml

我有一个基本xml文件,如:

<base>
     ...
     <s l="something" />
     <s l="somethingelse" />
     <s>
     ...
</base>
在基本文件的
中,我试图选择所有
@l
与当前
的任何
前面的同级::*/@l
不匹配的
。因此,对于没有属性的第三个
,它将匹配

比如:

<xsl:for-each select="document('mydoc.xml')//r[@l != preceding-sibling::*/@l]"> 
     ...
</xsl:for-each>

...
如果我在我相信的
属性中进行匹配,则会起作用,但我需要
current()
的前面兄弟姐妹。。。我还没弄明白语法


不幸的是,我的环境中没有2.0处理器,被xslt 1.0卡住了。

如果要引用谓词中的当前
s
节点,则需要使用
current()
函数。尝试:

select="document('mydoc.xml')//r[not(@l = current()/preceding-sibling::s/@l)]"

还要注意
$a!=$b
不($a=$b)
我更改了你的标题,因为你的问题与模式匹配无关。
select="document('mydoc.xml')//r[not(@l = current()/preceding-sibling::s/@l)]"