대문자에서 소문자로 변환해야하는 요구 사항이 있습니다. 그러나 첫 번째 문자는 대문자로 남겨 두어야합니다.XSLT 1.0을 사용하여 대문자를 소문자로 변환하지만 첫 문자는 대문자로 유지되어야합니다.
입력 : <LineStatus>DELETED</LineStatus>
예상 출력 : 다음
<LineStatus>Deleted</LineStatus>
이 deleted
내가 <xsl:value-of select="translate(substring(DELETED,1,1), $smallcase, $uppercase)" />
처럼 뭔가를 시도했지만 그것이 내 주면서이 출력을 줄 것이다
`<xsl:template match="/">
<xsl:variable name="smallcase" select="'abcdefghijklmnopqrstuvwxyz'" />
<xsl:variable name="uppercase" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" />
<xsl:value-of select="translate(DELETED, $smallcase, $uppercase)" />
</xsl:template>`
코드를입니다 내가 출력 d
누구든지 조언 해주실 수 있습니까?
UPDATE는
내가있는 내가이
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<<xsl:variable name="LineStatus" select="//OrderResponse/OrderResponseBody/OrderResponseDetails/OrderResponseProductLineItem/LineStatus/text()"/>
<xsl:variable name="change"><xsl:value-of select="substring($LineStatus, 1, 1)"/></xsl:variable>
<xsl:variable name="RSRIden" select="/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='OrderResponse']/*[local-name()='OrderResponseBody']/*[local-name()='OrderResponseDetails']/*[local-name()='OrderResponseProductLineItem']/*[local-name()='SpecialInstructions' and @*[local-name()='InstructionType' and normalize-space(.) = 'PostingInstructions']]"/>
<xsl:variable name="RSRDescri" select="/*[local-name()='Envelope']/*[local-name()='Body']/*[local-name()='OrderResponse']/*[local-name()='OrderResponseBody']/*[local-name()='OrderResponseDetails']/*[local-name()='OrderResponseProductLineItem']/*[local-name()='SpecialInstructions' and @*[local-name()='InstructionType' and normalize-space(.) = 'ShipperInstructions']]"/>
<xsl:template name="Reject-Status">
<ResponseStatus>
<ResponseStatusReasonIdentifier Agency="ResponseCode">
<xsl:value-of select="$RSRIden"/>
</ResponseStatusReasonIdentifier>
<ResponseStatusReasonDescription>
<xsl:value-of select="$RSRDescri"/>
</ResponseStatusReasonDescription>
</ResponseStatus>
<!--<LineStatus><xsl:value-of select="translate($change,$uppercase,$smallcase)" /></LineStatus>-->
</xsl:template>
</xsl:stylesheet>
이로 변경하고
<LineStatus><xsl:value-of select="substring($LineStatus, 1, 1)"/><xsl:value-of select="translate(substring($LineStatus,2),$uppercase,$smallcase)" /></LineStatus>
당신은을 선언해야 일을하고있는 중이 템플릿을 만들었습니다' 비누'네임 스페이스를 사용하여 XSL 문서에서 '/ * [local-name() = 'Envelope']'단순히'/ soap : Envelope'을 사용할 수 있습니다. – Tomalak
@Tomalak 감사합니다. XSL을 업데이트 할 예정입니다. 그러나 그것은 내가 달성하고자하는 것에 영향을 미칩니 까? –
아니, 그래서 나는 그것을 코멘트로 썼다. XPath를 좀 더 관리하기 쉽게 만듭니다. 아래의 마이클의 대답은 당신의 해결책입니다. – Tomalak