こんにちは私はフィールド<name>ATTN Dani</name>
を持っていますが、ATTNを削除する必要がありますが、時にはattnやAttnやATtnでもATtnが発生します。大文字小文字を区別しない部分文字列への方法
<xsl:value-of select="substring(name, 6)" />
を、後続の部分文字列を抽出するために:.Iは、文字列は、例を確認してください「ATTN」で始まるではなく、知っている場合は、あなたが使用できる値は
<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:pfx4="http://xmlns.oracle.com/apps/otm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<PARTNER_INBOUND_V2>
<xsl:choose>
<xsl:when test="starts-with(upper-case(//root/name), 'ATTN')">
<IS_ACTIVE>Working</IS_ACTIVE>
<test><xsl:value-of select="normalize-space(substring-after(upper-case(//root/name),'ATTN'))"/></test>
</xsl:when>
<xsl:otherwise>
<IS_ACTIVE>Y</IS_ACTIVE>
</xsl:otherwise>
</xsl:choose>
</PARTNER_INBOUND_V2>
</xsl:template>
</xsl:stylesheet>
'translate()'を使って文字列を大文字または小文字に変換し、比較することができます。これを参照してください:http://stackoverflow.com/questions/586231/how-can-i-convert-a-string-to-upper-or-lower-case-with-xslt –
ちなみに、具体的な例では、複数の 'name'要素を持たない限り、特に' 'ATTN ''で始まる名前は決して '' C/O "'で始まる ''ブロックにあります。根の子として –
Flynn1179
あなたのスタイルシートはバージョン1.0ですが、 'upper-case()'にはXSLT 2.0が必要です。あなたの質問にもう一つ混乱していること。 –