在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
感谢您的帮助。
答案 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