必须使用一个表达式来控制所有LIGHT_RANGE在所有SECTION_CONTENT_LIST_ITEM中都是相同的。
这是我的XML:
<SECTION_CONTENT_LIST_ITEM> <------- First Group
<NTC_LIGHTLISTPRODUCT>
<IMMUTABLE_ID>5585</IMMUTABLE_ID>
<LIGHT_INFORMATION_LIST>
<LIGHT_INFORMATION>
<LIGHT_COLOUR>G</LIGHT_COLOUR> <-- LIGHT_COLOUR G
<LIGHT_RANGE>3</LIGHT_RANGE> <-- LIGHT_RANGE 3
</LIGHT_INFORMATION>
<LIGHT_INFORMATION>
<LIGHT_COLOUR>R</LIGHT_COLOUR> <-- LIGHT_COLOUR R
<LIGHT_RANGE>3</LIGHT_RANGE> <-- LIGHT_RANGE 3
</LIGHT_INFORMATION>
</LIGHT_INFORMATION_LIST>
</NTC_LIGHTLISTPRODUCT>
</SECTION_CONTENT_LIST_ITEM>
<SECTION_CONTENT_LIST_ITEM> <------- Second Group
<NTC_LIGHTLISTPRODUCT>
<IMMUTABLE_ID>6000</IMMUTABLE_ID>
<LIGHT_INFORMATION_LIST>
<LIGHT_INFORMATION>
<LIGHT_COLOUR>R</LIGHT_COLOUR> <-- LIGHT_COLOUR R
<LIGHT_RANGE>10</LIGHT_RANGE> <-- LIGHT_RANGE 10
</LIGHT_INFORMATION>
<LIGHT_INFORMATION>
<LIGHT_COLOUR>G</LIGHT_COLOUR> <-- LIGHT_COLOUR G
<LIGHT_RANGE>10</LIGHT_RANGE> <-- LIGHT_RANGE 10
</LIGHT_INFORMATION>
<LIGHT_INFORMATION>
<LIGHT_COLOUR>W</LIGHT_COLOUR> <-- LIGHT_COLOUR W
<LIGHT_RANGE>12</LIGHT_RANGE> <-- LIGHT_RANGE 12
</LIGHT_INFORMATION>
</LIGHT_INFORMATION_LIST>
</NTC_LIGHTLISTPRODUCT>
</SECTION_CONTENT_LIST_ITEM>
我的XSLT:
<xsl:for-each select="LIGHT_INFORMATION_LIST/LIGHT_INFORMATION/LIGHT_RANGE[not(. = preceding::LIGHT_RANGE[preceding::IMMUTABLE_ID = $EF])]">
<!-- Prendo le lettere dei colori in LIGHT_COLOUR-->
<xsl:variable name="LCorrente" select="preceding-sibling::LIGHT_COLOUR"/>
<xsl:variable name="LPrecedente" select="preceding::LIGHT_RANGE[1][not(contains(preceding-sibling::LIGHT_COLOUR, '-'))][preceding::IMMUTABLE_ID = $EF]/preceding-sibling::LIGHT_COLOUR"/>
<!-- Prendo i numeri di portata in LIGHT_RANGE-->
<xsl:variable name="NCorrente" select="number(.)"/>
<xsl:variable name="NPrecedente" select="number(preceding::LIGHT_RANGE[1][not(contains(preceding-sibling::LIGHT_COLOUR, '-'))][preceding::IMMUTABLE_ID=$EF])"/>
<xsl:value-of select="."/>
</xsl:for-each>
这是输出:
3(第一组)
10 12(第二组)&lt; ==需要另一个&#39; 10&#39;因为在leat元素是不同的。
请求:
必须有一个表达式来控制所有LIGHT_RANGE在所有SECTION_CONTENT_LIST_ITEM中都是相同的。 (第一个案例)
在第二种情况下,您可以看到有树元素,2是相同的1不同。在这种情况下,如果至少有一个s不同的写树元素。 (第二个案例)
**请求输出:**
3&lt; ==返回3,因为此SECTION_CONTENT_LIST_ITEM中的所有元素LIGHT_RANGE都相同。
10 10 12&lt; ==第二组
答案 0 :(得分:2)
当所有LIGHT_RANGE值相同时,XSLT输出true
,否则false
:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/SECTION_CONTENT_LIST_ITEM">
<xsl:value-of select="count(.//LIGHT_RANGE) = count(.//LIGHT_RANGE[. = (current()//LIGHT_RANGE)[1]])"/>
</xsl:template>
</xsl:stylesheet>