xml - XSLT template match for CSV transform -



xml - XSLT template match for CSV transform -

i'm using next xsl transform xml csv, based on before query.

xml:

<rows> <row> <loannumber>123456</loannumber> <datereceived>2015-04-10</datereceived> <dateclosed>2015-04-10</dateclosed> </row> <row> <loannumber>9988776</loannumber> <datereceived>2015-04-10</datereceived> <dateclosed/> </row> </rows>

xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text" encoding="iso-8859-1"/> <xsl:strip-space elements="*" /> <xsl:template match="/*/child::*"> <xsl:for-each select="child::*"> <xsl:if test="position() = 1"><xsl:value-of select="normalize-space(.)"/>,open,</xsl:if> <xsl:if test="position() != 1 , position() != last()"><xsl:value-of select="normalize-space(.)"/>,</xsl:if> <xsl:if test="position() = last()"><xsl:value-of select="normalize-space(.)"/><xsl:text>&#xd;</xsl:text> </xsl:if> </xsl:for-each> </xsl:template> </xsl:stylesheet>

i'd able output next csv above rows

123456, closed, 2015-04-10, 2015-04-10 9988776, open, 2015-04-10,

i'd assumed accomplish having 2 templates, 1 outputting text open, <dateclosed> element null , 1 outputting text closed not.

however don't understand template match that's been used plenty able figure out how this. requirement met in 1 template even?

your output not match input. assuming want result show loannumber, status, datereceived, dateclosed suggest seek way:

xslt 1.0

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/xsl/transform"> <xsl:output method="text" encoding="iso-8859-1"/> <xsl:template match="/rows"> <xsl:for-each select="row"> <xsl:value-of select="loannumber"/> <xsl:text>,</xsl:text> <xsl:choose> <xsl:when test="string(dateclosed)">closed,</xsl:when> <xsl:otherwise>open,</xsl:otherwise> </xsl:choose> <xsl:value-of select="datereceived"/> <xsl:text>,</xsl:text> <xsl:value-of select="dateclosed"/> <xsl:text>&#10;</xsl:text> </xsl:for-each> </xsl:template> </xsl:stylesheet>

xml csv xslt

Comments

Popular posts from this blog

java - How to set log4j.defaultInitOverride property to false in jboss server 6 -

c - GStreamer 1.0 1.4.5 RTSP Example Server sends 503 Service unavailable -

Using ajax with sonata admin list view pagination -