Как я уже упоминал в этом посте:
динамические несколько фильтров в xsl
По сути, я хочу применить несколько фильтров к моему xml, используя цикл for, и эти фильтры являются динамическими, которые исходят из некоторого другого xml
что-то вроде этого:
foreach(list/field[@ProgramCategory=$Country][not(contain(@Program,$State1][not(contain(@Program,$State2][not(contain(@Program,$State3][not(contain(@Program,$Staten])
Проблема в том, что я могу получить нет. состояний, которые я получаю за цикл других XML.
Я не могу использовать функцию document (), как это было предложено Dimitre, поэтому я думал о ее достижении:
<xsl:variable name="allprograms">
<xsl:for-each select="/list2/field2">
<xsl:text disable-output-escaping="yes">[not(contains(@Program,'</xsl:text><xsl:value-of select="@ProgramID"></xsl:value-of><xsl:text disable-output-escaping="yes">'))]</xsl:text>
</xsl:for-each>
</xsl:variable>
дает мне что-то вроде этого:
[not(contains(@Program,'Virginia'))][not(contains(@Program,'Texas'))][not(contains(@Program,'Florida'))]
Я хочу использовать указанное выше значение в качестве фильтра в цикле for ниже, и я не уверен, как этого добиться
<xsl:for-each="list/field[not(contains(@Program,'Virginia'))][not(contains(@Program,'Texas'))][not(contains(@Program,'Florida'))]">
Перед этим у меня также есть цикл for для фильтрации. США
xsl:for-each="list/field $allprograms">
<xsl:value-of select="@ows_ID" />
</xsl:for-each>
Я хочу, чтобы мой ответ был 1082, 1088 ..
Я тоже могу добавить сюда xml, если есть путаница ..