嗨,我有字段<name>ATTN Dani</name>
,我需要刪除ATTN,但它來了ATTN有時attn或Attn甚至ATtn我怎麼能做這個子字符串我做了下面的xslt,但它影響的價值。我不希望如果你知道字符串「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 –
順便說一句,在你的具體例子在這裏,你永遠不會有一個以'ATTN'開頭的名字,因爲它在''塊中,它特別要求它以'C/O'開頭,除非你有多個'name'元素作爲根的孩子。 –
Flynn1179
您的樣式表示版本1.0,但'大寫()'需要XSLT 2.0。在你的問題中更令人困惑的事情。 –