сравнение строк между двумя строками в xslt

Я использую приведенный ниже код для проверки того, равны ли содержимое двух строк или нет, но он не работает, так как я использую идентификатор watson explorer.

<xsl:variable name="str1" select="./td[4]"/>
<xsl:variable name="str2" select="./td[2]"/>

<xsl:if test="$str1 = $str2">
  true 
</xsl:if>

скажите, пожалуйста, как с помощью xslt определить, равно ли содержимое двух строк или нет, поскольку я пытался использовать сравнение (str1,str2), но это также не работало для меня, поскольку я использую версию xslt 1.0


person Shwetank Sharma    schedule 27.03.2015    source источник
comment
Пожалуйста, разместите достаточно кода, чтобы мы могли воспроизвести проблему. Не говорите, что это не работает; Расскажите нам, каков ваш ожидаемый результат и что вы на самом деле получаете.   -  person michael.hor257k    schedule 27.03.2015
comment
Не говорите нам, что что-то не работает. Расскажите нам, как это не удается. Понижение.   -  person Michael Kay    schedule 27.03.2015
comment
спасибо, Майкл, теперь моя проблема решена, на самом деле я сравнивал две строки с оператором =, поэтому для одного и того же содержимого он давал false, когда я запускал отладку в инструменте, я обнаружил, что в одной из строк было добавлено одно пробел в начале, из-за которого он возвращал false при сравнении с другими   -  person Shwetank Sharma    schedule 01.04.2015


Ответы (1)


XML:

<Sample>`<AccountName1>SREE</AccountName1>`<AccountName2>SREE</AccountName2>`<SortCode>789-88-8907</SortCode>`<CardNumber>4545-6767-9876-8764</CardNumber>`<address>j-89-8999</address>`</Sample>

XSL:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:regexp="http://exslt.org/regular-expressions" xmlns:dp="http://www.datapower.com/extensions" >
<xsl:output method="xml" indent="yes"/>
<xsl:template match="@*|node()"> 
<xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match = "*[local-name()='AccountName1' or local-name()='AccountName2']">
    <xsl:variable name = "var1">
 <xsl:value-of select = "/*[local-name()='Sample']/*[local-name()='AccountName1']/text()"/>
  </xsl:variable>
<xsl:variable name = "var2">
 <xsl:value-of select = "/*[local-name()='Sample']/*[local-name()='AccountName2']/text()"/>
</xsl:variable>
 <xsl:message dp:priority="debug"> First: <xsl:value-of select = "$var1"/> </xsl:message>
         <xsl:message dp:priority="debug"> Second: <xsl:value-of select = "$var2"/> </xsl:message>
<xsl:choose>
        <xsl:when test = "$var1=$var2">
<xsl:message dp:priority = "debug">Both are same </xsl:message>
                <xsl:copy>
                <xsl:value-of select = "."/>
            </xsl:copy>
</xsl:when>
        <xsl:otherwise>
            <xsl:message dp:priority = "debug">Both are different </xsl:message>
                <xsl:copy>
<xsl:value-of select="regexp:replace(*[local-name()='AccountName2'],'','',$var1)"/>
            </xsl:copy>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template> 


</xsl:stylesheet> 
person sreevathsa a    schedule 27.03.2015