Как заменить специальный символ в требуемой позиции в строке в xslt - PullRequest
0 голосов
/ 19 августа 2011

Как я могу заменить специальный символ в требуемой позиции в xslt?

вот мой xml:

<block4>

    <tag>
        <name>5</name>
        <value>accnt number
              Name
              Address1
              Address2
              Address3</value>
    </tag>
</block4>

Вот моя текущая логика xslt:

<xsl:for-each select ="block4/tag[name = '5']">
            <xsl:variable name ="del50k" select ="(translate(substring-after(value,'&#13;'),'&#13;','~'))"/>
            <xsl:value-of select="concat(substring-before(value,'&#13;'), ',',$del50k)" />
        </xsl:for-each>,<xsl:text/>

вывод для моей логики:

accnt number,Name~Address1~Address2~Address3,

но требуемый вывод был

accnt number,Name~Address1 Address2 Address3,

Разделитель тидлов должен быть между name и address1, address следует с нормализованным пробелом.

Может ли кто-нибудь помочь мне разобраться с этой проблемой?

1 Ответ

2 голосов
/ 19 августа 2011

это должно работать!

<xsl:for-each select ="block4/tag[name = '5']">
    <xsl:variable name ="del50k" select ="concat(substring-before(substring-after(value,'&#13;'),'&#13;'),'~',substring-after(substring-after(value,'&#13;'),'&#13;'))"/>
    <xsl:value-of select="concat(substring-before(value,'&#13;'), ',',$del50k)" />
</xsl:for-each>,<xsl:text/>
...