XSLT 1.0:基于current()节点前面同级的属性进行选择
我有一个基本xml文件,如: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
<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)]"