Converting input xml using xslt to other XML

azadeze1e

New Member
hi i am a beginner and want to learn XSLT. I came upon an issue to convert an input xml file to other XML file using XSLTMy input XML FILE: \[code\]<album><album_num>hi.hello</album_num><album_name>Cocktail</album_name></album><album><album_num>hey.hello</album_num><album_name>Mocktail</album_name></album><album><album_num>hey.mello</album_num><album_name>Monkeytail</album_name></album><album><album_num>hey.yellow</album_num><album_name>Donkeytail</album_name></album><album><album_num>swallow</album_num><album_name>abc</album_name></album>\[/code\]I would like to get an output XML file as:\[code\]<album><album_num><hi><hello>cocktail</hello></hi></album_num><album_num><hey><hello>MockTail</hello><mello>Monkeytail</mello><yellow>Donkeytail</yellow></hey></album_num><album_num><swallow>abc</swallow></album_num></album>\[/code\]I tried the first part by creating variables. But got into issue with merging the similar elements under one element. Any code could help me learning. Thanks in advance.My code:\[code\]<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><album><xsl:variable name="fstval" select='substring-before(//album/album_num,".")'/><xsl:variable name="secval" select='substring-after(//album/album_num,".")'/><xsl:variable name="valtoappend" select='//album/album_name'/><album_num><xsl:element name="{$fstval}"><xsl:element name="{$secval}"><xsl:value-of select="$valtoappend"/></xsl:element></xsl:element></xsl:for-each></album_num></album></xsl:template></xsl:stylesheet>\[/code\]
 
Back
Top