xml - XSLT null Check -


i have incoming xml payload wanted check null element"ns4:payload" complex type can content data or null.i have given below xslt. how can null check complex type element. please let me know. tried without namespace prefic xslt working. how null check element if coming namespace prefix. please let me know incoming xml:

    <ns4:eventinteractiontrackingrequest xmlns:ns2="http://example.com">        <ns4:basemessage>           <uuid>sample</uuid>           <exchangetype>test</exchangetype>           <headerversion>1</headerversion>           <username>test</username>        </ns4:basemessage>        <ns4:payload/>     </ns4:eventinteractiontrackingrequest>   xsl code:      <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:dp="http://www.datapower.com/extensions" xmlns:ns1="http://example.com" xmlns:xsl="http://www.w3.org/1999/xsl/transform" extension-element-prefixes="dp" exclude-result-prefixes="dp" extension-element-prefix="*" version="1.0"> <xsl:template match="/">      <xsl:choose>     <xsl:when test="string-length(//payload)!=0">         <xsl:copy-of select="." />     </xsl:when>     <xsl:otherwise>         <xsl:message dp:priority="error">payload data not present.</xsl:message>         <dp:reject>empty paylod </dp:reject>     </xsl:otherwise> </xsl:choose> </xsl:template> </xsl:stylesheet> 

first, input show declares: xmlns:ns2="http://example.com" - prefix used ns4. cannot work.

assuming that's typo, next problem ignoring payload's namespace. since have declared namespace in stylesheet xmlns:ns1="http://example.com", need change test:

<xsl:when test="string-length(//payload)!=0"> 

to:

<xsl:when test="string-length(//ns1:payload)!=0"> 

or just:

<xsl:when test="string(//ns1:payload)"> 

or - since payload complex type - test for:

<xsl:when test="//ns1:payload/node()"> 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -