XML with several levels to XML with one level using XSLT



I am new to XSL and I have two questions regarding several child elements.


I have the following structure in my XML document:



<root>
<levelOne>
<entry1>Test1</entry1>
<entry2>Test2</entry2>
<levelTwo>
<entry3>Test3</entry3>
<entry4>Test4</entry4>
<levelThree>
<entry5>Test5</entry5>
<entry6>Test6</entry6>
</levelThree>
</levelTwo>
</levelOne>
<levelOne>
<entry1>Test1</entry1>
<entry2>Test2</entry2>
<levelTwo>
<entry3>Test3</entry3>
<entry4>Test4</entry4>
<levelThree>
<entry5>Test5</entry5>
<entry6>Test6</entry6>
</levelThree>
</levelTwo>
</levelOne>
<!-- etc. -->
</root>


My XSL looks like this:



<xsl:stylesheet version='1.0' xmlns:xsl='http://ift.tt/tCZ8VR'>
<xsl:output method="xml" indent="yes"/>
<xsl:template match="root">
<resultlistEntries>
<xsl:for-each select="levelOne">
<entry1><xsl:value-of select="entry1"/></entry1>
<entry2><xsl:value-of select="entry2"/></entry2>
<!-- address child elements? -->
</xsl:for-each>
</resultlistEntries>
</xsl:template>
</xsl:stylesheet>


I want entry 3, 4, 5, 6 etc. to be one the same level in my output XML document.



  1. How is it possible to address a child element of a child element (3rd, 4th, etc. level)?

  2. How is it possible to have all those child elements on one level (in resultlistEntries, in my example)?


No comments:

Post a Comment