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

时间:2014-10-08 16:05:48

标签: xpath

在xml中我有一个元素,其属性包含一个类别列表,例如:cat =" A B C D"

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

例如:

子集(A C)cat(A B C)true

子集(D)cat(A C)false

子集(A C)cat(A B)false

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这里有一些基本上应该按照你想要的代码。 XSLT包装器只是设置变量。

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

当然,您可能需要调整//*,具体取决于您尝试匹配的元素类型。

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

此代码还假定所有类别名称都是单个字母。如果情况并非如此,请告诉我。

答案 1 :(得分:0)

感谢您的代码。

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

),那就太好了

子集(A Z.Y)cat(A.B Z.Y)true