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
xpath 1.0:子集是否与属性列表匹配?_Xpath - Fatal编程技术网

xpath 1.0:子集是否与属性列表匹配?

xpath 1.0:子集是否与属性列表匹配?,xpath,Xpath,在xml中,我有一个包含类别列表的属性元素,例如:cat=“a B C D” XPath1.0(我在Firefox中使用xslt)是否有可能返回类别子集与列表匹配的所有元素 例如: 子集(AC)cat(AB C)为真 子集(D)类别(A C)错误 子集(AC)类别(AB)错误 谢谢您的帮助。这里有一些代码,基本上可以实现您想要的功能。XSLT包装器只是用来设置变量 <xsl:variable name="subset" select="A C" /> <xsl:variable

在xml中,我有一个包含类别列表的属性元素,例如:cat=“a B C D”

XPath1.0(我在Firefox中使用xslt)是否有可能返回类别子集与列表匹配的所有元素

例如:

子集(AC)cat(AB C)为真

子集(D)类别(A C)错误

子集(AC)类别(AB)错误


谢谢您的帮助。

这里有一些代码,基本上可以实现您想要的功能。XSLT包装器只是用来设置变量

<xsl:variable name="subset" select="A C" />
<xsl:variable name="matches"
    select="//*[translate($subset, concat(@cat, ' '), '') = '']" />

当然,您可能需要根据要匹配的元素类型调整
/*

只有在像
'D'
这样的子集字符串不包含空格时,才需要将空格连接到
@cat

此代码还假定所有类别名称都是单个字母。如果不是这样,请告诉我。

谢谢您的代码

事实上,我的类别通常包含多个字母,并且可能存在子类别(例如:AB.CD,其中点是子类别的分隔符)。如果我也可以只搜索类别的一部分(例如:


subset(A Z.Y)cat(A.B Z.Y)true

或者,您可以在Firefox中使用Saxon CE,它提供XSLT 2.0(包括XPath 2.0)。然后您可以使用tokenize(),如果类别名称不是单个字母,这会有所帮助。