2014-10-08 130 views
0

在xml中我有元素的屬性包含一個類別列表,例如:cat =「ABCD」xpath 1.0:子集匹配屬性列表?

xpath 1.0(我在Firefox中使用xslt)有任何可能性返回所有元素一個類別的子集匹配列表?

例如:

子集(AC)貓(ABC)真

子集(d)貓(AC)假

子集(AC)貓(AB)假

謝謝你的幫助。

回答

1

下面是一些基本上應該做的事情的代碼。 XSLT包裝只是設置變量。

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

當然,你可能需要根據什麼樣的你想匹配的元素來調整//*

只有在子集字符串'D'不包含空格的情況下,才需要將空間連接到@cat

此代碼還假定所有類別名稱都是單個字母。如果情況並非如此,請告訴我。

+0

另外,還可以使用撒克遜CE在Firefox中,它提供了XSLT 2.0(包括XPath 2.0),然後你可以使用tokenize(),這對分類名稱不是單個字母會有幫助。 – LarsH 2014-10-08 21:35:45

0

感謝您的代碼。

事實上,我的類別通常包含多個字母,並且可能有子類別(例如:AB.CD,其中點是子類別的定界符)。這將是很好,如果我也可以搜索類別的只是其中的一部分(例如:

子集(A ZY)貓(AB ZY)真