У меня есть ниже XML в качестве входных данных, для которых я должен делать трансформации XSLвыбора конкретного значения столбца из входного XML
<emml>
<tradeEventHeader>
<tradeIdentifier>
<tradeId>104823343913</tradeId>
<systemReference>RDS</systemReference>
<systemDomainName>Internal</systemDomainName>
</tradeIdentifier>
<tradeStateIdentifier>
<tradeStateId>Validated</tradeStateId>
<systemReference>RDS</systemReference>
<tradeStateIdClassificationScheme>Vn State</tradeStateIdClassificationScheme>
</tradeStateIdentifier>
<tradeStateIdentifier>
<tradeStateId>Pending</tradeStateId>
<systemReference>Swapswire</systemReference>
<tradeStateIdClassificationScheme>Mang State</tradeStateIdClassificationScheme>
</tradeStateIdentifier>
<tradeStateIdentifier>
<tradeStateId>accpt_novated_sw</tradeStateId>
<systemReference>RDS</systemReference>
<tradeStateIdClassificationScheme>Clearing State</tradeStateIdClassificationScheme>
</tradeStateIdentifier>
</tradeEventHeader>
<emmlExtension systemId="RDS YTO">
<emmlMediumString idref="legId1" name="Roll Date Option">Short Initial</emmlMediumString>
</emmlExtension>
</emml>
, как показано выше, во входном XML основном моя цель состоит в том, чтобы определить значение tradeStateIdClassificationScheme, и если значение этого параметра равно «Состояние очистки», то с этим мне нужно проверить значение другого столбца tradeStateId, и если значение столбца tradeStateId начинается с accpt_novated_sw, тогда в этом случае нам нужно вернуть истинная строка и для остальных других мне нужно вернуть ложную строку.
я придумал ниже шаблон в XSLT 1.0, пожалуйста, сообщите это правильный подход ..
призывающую шаблона: -
<isClearedNovated>
<xsl:call-template name="cleared_novated">
<xsl:with-param name="tradeStateId" select="emml/*/*/tradeStateIdentifier" />
</xsl:call-template>
</isClearedNovated>
called template :-
<xsl:template name="cleared_novated">
<xsl:param name="tradeStateId" />
<xsl:for-each select="$tradeStateId/tradeStateIdClassificationScheme">
<xsl:choose>
<xsl:when test="$tradeStateId[starts-with(tradeStateIdClassificationScheme,'accpt')] and systemReference='RDS'">
<xsl:value-of select="'true'"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'false'"/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
Благодаря вы можете также, пожалуйста, сообщите он будет работать в XSLT 1.0 также. – asderfgh
Да, это трансформация версии 1.0. – leu
Большое спасибо, вы также можете посоветовать, скажем, я хочу, чтобы только состояние очистки было истинным, чтобы печатать только тогда, как я могу достичь этого – asderfgh