[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

xsl:for-each in Corresp Tag

Subject: xsl:for-each in Corresp Tag
From: "Byomokesh Sahoo sahoo.byomokesh@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 12 Feb 2020 17:05:51 -0000
 xsl:for-each in Corresp Tag
Hi,

I am facing difficulty to get required output in different structure of
<corres>. Find the below three types of tagging structure.

Not getting exact output if apply <xsl:for-each> on below three type of
scenario.

XML

<corresp><label>Correspondence to</label> Anne Marie Darling, <institution
content-type="department">Department of Epidemiology</institution>,
<institution>Boston University</institution>, <addr-line
content-type="street">715 Albany Street</addr-line>,
<country>USA</country>; <email>amdarlin@xxxxxx</email></corresp>

<corresp><label>Correspondence to</label> Anne Marie Darling, <institution
content-type="department">Department of Epidemiology</institution>,
<addr-line content-type="postal-code">02118</addr-line>,
<country>USA</country>; </corresp>

<corresp>Joanne Lawrence, Association of British Neurologists, Ormond
House, 27 Boswell Street, London WC1N 3JZ, UK; <email>
joanne.lawrence@xxxxxxxxxx</email></corresp>

My XSLT
<xsl:template match="corresp">
<xsl:element name="corresp">
<xsl:for-each select="label">
<xsl:element name="x">
<xsl:value-of select="."/>
</xsl:element>
<xsl:text>, </xsl:text>
</xsl:for-each>
<institution>
<xsl:for-each select="institution">
<xsl:choose>
<xsl:when test="@content-type='department'">

<xsl:element name="department">
<xsl:apply-templates select="node()" mode="copy-no-namespaces"/>
</xsl:element>
<xsl:text>, </xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:element name="institution-name">
<xsl:value-of select="."/>
</xsl:element>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</institution>
<xsl:text>, </xsl:text>

<xsl:for-each select="addr-line">
<xsl:choose>
<xsl:when test="@content-type='street'">
<xsl:element name="street">
<xsl:value-of select="."/>
</xsl:element>
<xsl:text>, </xsl:text>
</xsl:when>
<xsl:when test="@content-type='postal-code'">
<xsl:element name="postal-code">
<xsl:value-of select="."/>
</xsl:element>
<xsl:text>, </xsl:text>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:for-each select="country">
<xsl:element name="country">
<xsl:value-of select="."/>
</xsl:element>
<xsl:text>; </xsl:text>
</xsl:for-each>
<xsl:for-each select="email">
<xsl:element name="email">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:template>

Desired Output

<corresp><x>Correspondence to</x> Anne Marie Darling,
<institution><department>Department of Epidemiology</department>,
<institution-name>Boston University</institution-name></institution>,
<street>715 Albany Street</street>, <country>USA</country>; <email>
amdarlin@xxxxxx</email></corresp>

<corresp><x>Correspondence to</x> Anne Marie Darling,
<institution><department>Department of Epidemiology</department>,
<postal-code>02118</postal-code>, <country>USA</country>; <email>
amdarlin@xxxxxx</email></corresp>

<corresp>Joanne Lawrence, Association of British Neurologists, Ormond
House, 27 Boswell Street, London WC1N 3JZ, UK; <email>
joanne.lawrence@xxxxxxxxxx</email></corresp>

Kindly suggest.

thanks
byomokesh

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.