Я новичок в xsl. У меня проблемы с получением желаемого результата для файла xml.вот часть моего xml-файла, результат запроса:
<?xml version="1.0" encoding="UTF-8"?>
-<SearchResults>
-<TableHeader>
<ColumnName>UCode</ColumnName>
<ColumnName>URev</ColumnName>
<ColumnName>Shapes</ColumnName>
<ColumnName>Name</ColumnName>
<ColumnName>Value</ColumnName>
</TableHeader>
-<Object>
<Attribute>XXXXXXX/Attribute>
<Attribute>A</Attribute>
<Attribute>BLABLA</Attribute>
<Attribute>PART_CODE</Attribute>
<Attribute>X123456</Attribute>
<Attribute/>
</Object>
-<Object>
<Attribute>YYYYYYYY/Attribute>
<Attribute>A</Attribute>
<Attribute>BLABLA</Attribute>
<Attribute>OPACITY</Attribute>
<Attribute>BLACK</Attribute>
<Attribute/>
</Object>
-<Object>
<Attribute>ZZZZZZZZ/Attribute>
<Attribute>A</Attribute>
<Attribute>BLABLA</Attribute>
<Attribute>PART_CODE</Attribute>
<Attribute>X198706</Attribute>
<Attribute/>
</Object>
-<Object>
<Attribute>XXXXXXX/Attribute>
<Attribute>A</Attribute>
<Attribute>BLABLA</Attribute>
<Attribute>OPACITY</Attribute>
<Attribute>BLACK</Attribute>
<Attribute/>
</Object>
</SearchResults>
Вот часть моего XSL, которая показывает тег EXIST ~ YES только один раз, когда у меня есть Name = 'OPACITY' и Value ='BLACK':
<xsl:for-each select="/queryResult/result/child::row">
<xsl:variable name="attnamez" select='Name'/>
<xsl:if test="$attnamez='OPACITY'">
<xsl:variable name="attvaluez" select='Value'/>
<xsl:if test="$attvaluez!='NotDefined'">
<xsl:choose>
<xsl:when test="$attvaluez='BLACK'">
<xsl:choose>
<xsl:when test="count(preceding::row[Name='OPACITY' and Value=$attvaluez])=0">

EXIST~YES
</xsl:when>
</xsl:choose>
</xsl:when>
</xsl:choose>
</xsl:if>
</xsl:if>
</xsl:for-each>
Мне нужна ваша помощь, чтобы отобразить тег EXIST ~ NO в случае, если [Name = 'OPACITY' и Value = 'BLACK'] существует не во всех строках.на самом деле, когда я использую блок «иначе» внутри for-each, он показывает EXIST ~ NO несколько раз (каждый раз, когда значение не равно BLACK).
большое спасибо за вашу помощь,
вот сгенерированный xml:
<queryResult>
<result>
<row idx="1">
<UCode>XXXXX</UCode>
<URev>B</URev>
<Name>OPACITY</Name>
<Value>WHITE</Value>
<SiteLegacy />
</row>
<row idx="2">
<UCode>YYYYYY</UCode>
<URev>B</URev>
<Name>OPACITY</Name>
<Value>BLACK</Value>
<SiteLegacy />
</row>
<row idx="3">
<UCode>YYYYYY</UCode>
<URev>B</URev>
<Name>OPACITY</Name>
<Value>BLACK</Value>
<SiteLegacy />
</row>
<row idx="4">
<UCode>YYYYYY</UCode>
<URev>B</URev>
<Name>OPACITY</Name>
<Value>BLACK</Value>
<SiteLegacy />
</row>
<row idx="5">
<UCode>YYYYYY</UCode>
<URev>B</URev>
<Name>OPACITY</Name>
<Value>BLACK</Value>
<SiteLegacy />
</row>
</result>
</queryResult>