xml - How do I check State Code if it has four characters and then transform it to 2 character code? -


what trying check in xml document element

<driverslicensestate word="cdon">ontario</driverslicensestate>.

if state code found 4 characters , begins ‘cd’ display last 2 characters. in case (example) display <nc:jurisdictioncanadianprovincecode>on</nc:jurisdictioncanadianprovincecode>

i not sure how add logic this.

xml document

<integration xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:tsg="http://tsgweb.com" xmlns:ixml="http://tsgweb.com" xmlns:cmcodequeryhelper="urn:cmcodequeryhelper" packageid="ixml case notification test" messageid="67077793" xmlns="">     <party id="8265760" internalpartyid="392728694">         <partyname id="4614549" current="true" internalnameid="1612416995">             <nametype>standard</nametype>             <namefirst>ismael</namefirst>             <namelast>montemayor-lira</namelast>             <formattedname>montemayor-lira, ismael</formattedname>         </partyname>         <driverslicense current="true">             <driverslicensenumber>321456782541a</driverslicensenumber>             <driverslicensestate word="cdon">ontario</driverslicensestate>         </driverslicense>      </party> </integration> 

xslt

<xsl:template name="chargedetails">   <nc:identificationjurisdiction>     <nc:jurisdictioncanadianprovincecode>         <xsl:for-each select="/integration/party/driverslicense[@current='true']/driverslicensestate">             <xsl:if test="/integration/party/driverslicense[@current='true']/driverslicensestate[@word]">             <xsl:value-of select="substring(/integration/party/driverslicense[@current='true']/driverslicensestate/@word, 1, 2)"/>             </xsl:if>         </xsl:for-each>     </nc:jurisdictioncanadianprovincecode>   </nc:identificationjurisdiction> </xsl:template> 

your code uses wrong xpath expressions, suppose. in addition, attribute @current written current in xml.

providing xpath expression in xsl:for-each ok, following code snippet should display desired result:

<xsl:template name="chargedetails">   <nc:identificationjurisdiction>      <nc:jurisdictioncanadianprovincecode>         <xsl:for-each select="/integration/party/driverslicense[@current='true']">            <xsl:if test="driverslicensestate[string-length(@word) = 4 , substring(@word,1,2) = 'cd']">               <xsl:value-of select="substring(driverslicensestate/@word, 3, 2)"/>            </xsl:if>         </xsl:for-each>      </nc:jurisdictioncanadianprovincecode>   </nc:identificationjurisdiction> </xsl:template> 

calling xsl:for-each inside destination element sounds bit strange. maybe want interchange them.


Comments

Popular posts from this blog

IF statement in MySQL trigger -

c++ - What does MSC in "// appease MSC" comments mean? -

javascript - Blogger related post gadget image Resize s72-c [ Need Expert Help ] -