Remember this?
Remember the xml code? Dave ,
csixty4, suggested some for-each statements. I played around with it for a few hours and was finally able to grab the pattern and output I desired. I'll share the results for any google surfers!
Here it is sample.xml:
<?xml version= 1.0 encoding= UTF-8 ?>
<root>
<parent>
<tagA>parent 1 data A</tagA>
<tagB>parent 1 data B</tagB>
<child>
<tag1>child 1 data 1</tag1>
<tag2>child 1 data 2</tag2>
<tag3>child 1 data 3</tag3>
</child>
<child>
<tag1>child 2 data 1</tag1>
<tag2>child 2 data 2</tag2>
<tag3>child 2 data 3</tag3>
</child>
<child>
<tag1>child 3 data 1</tag1>
<tag2>child 3 data 2</tag2>
<tag3>child 3 data 3</tag3>
</child>
<child>
<tag1>child 4 data 1</tag1>
<tag2>child 4 data 2</tag2>
<tag3>child 4 data 3</tag3>
</child>
</parent>
<parent>
<tagA>parent 2 data A</tagA>
<tagB>parent 2 data B</tagB>
<child>
<tag1>child 1 data 1</tag1>
<tag2>child 1 data 2</tag2>
<tag3>child 1 data 3</tag3>
</child>
<child>
<tag1>child 2 data 1</tag1>
<tag2>child 2 data 2</tag2>
<tag3>child 2 data 3</tag3>
</child>
<child>
<tag1>child 3 data 1</tag1>
<tag2>child 3 data 2</tag2>
<tag3>child 3 data 3</tag3>
</child>
<child>
<tag1>child 4 data 1</tag1>
<tag2>child 4 data 2</tag2>
<tag3>child 4 data 3</tag3>
</child>
</parent>
</root>"
Here is the Transformation XSLT sample.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/T ransform">
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="root/parent">
<xsl:for-each select="child">
<xsl:value-of select="../tagA" />|<xsl:value-of select="../tagB" />|<xsl:value-of select="tag1" />|<xsl:value-of select="tag2" />|<xsl:value-of select="tag3" /><xsl:value-of select="tag9" /><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Here is the output file sample.txt
parent 1 data A|parent 1 data B|child 1 data 1|child 1 data 2|child 1 data 3
parent 1 data A|parent 1 data B|child 2 data 1|child 2 data 2|child 2 data 3
parent 1 data A|parent 1 data B|child 3 data 1|child 3 data 2|child 3 data 3
parent 1 data A|parent 1 data B|child 4 data 1|child 4 data 2|child 4 data 3
parent 2 data A|parent 2 data B|child 1 data 1|child 1 data 2|child 1 data 3
parent 2 data A|parent 2 data B|child 2 data 1|child 2 data 2|child 2 data 3
parent 2 data A|parent 2 data B|child 3 data 1|child 3 data 2|child 3 data 3
parent 2 data A|parent 2 data B|child 4 data 1|child 4 data 2|child 4 data 3
Remember the xml code? Dave ,
Here it is sample.xml:
<?xml version= 1.0 encoding= UTF-8 ?>
<root>
<parent>
<tagA>parent 1 data A</tagA>
<tagB>parent 1 data B</tagB>
<child>
<tag1>child 1 data 1</tag1>
<tag2>child 1 data 2</tag2>
<tag3>child 1 data 3</tag3>
</child>
<child>
<tag1>child 2 data 1</tag1>
<tag2>child 2 data 2</tag2>
<tag3>child 2 data 3</tag3>
</child>
<child>
<tag1>child 3 data 1</tag1>
<tag2>child 3 data 2</tag2>
<tag3>child 3 data 3</tag3>
</child>
<child>
<tag1>child 4 data 1</tag1>
<tag2>child 4 data 2</tag2>
<tag3>child 4 data 3</tag3>
</child>
</parent>
<parent>
<tagA>parent 2 data A</tagA>
<tagB>parent 2 data B</tagB>
<child>
<tag1>child 1 data 1</tag1>
<tag2>child 1 data 2</tag2>
<tag3>child 1 data 3</tag3>
</child>
<child>
<tag1>child 2 data 1</tag1>
<tag2>child 2 data 2</tag2>
<tag3>child 2 data 3</tag3>
</child>
<child>
<tag1>child 3 data 1</tag1>
<tag2>child 3 data 2</tag2>
<tag3>child 3 data 3</tag3>
</child>
<child>
<tag1>child 4 data 1</tag1>
<tag2>child 4 data 2</tag2>
<tag3>child 4 data 3</tag3>
</child>
</parent>
</root>"
Here is the Transformation XSLT sample.xsl
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/T
<xsl:output method="text"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="root/parent">
<xsl:for-each select="child">
<xsl:value-of select="../tagA" />|<xsl:value-of select="../tagB" />|<xsl:value-of select="tag1" />|<xsl:value-of select="tag2" />|<xsl:value-of select="tag3" /><xsl:value-of select="tag9" /><xsl:text>
</xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Here is the output file sample.txt
parent 1 data A|parent 1 data B|child 1 data 1|child 1 data 2|child 1 data 3
parent 1 data A|parent 1 data B|child 2 data 1|child 2 data 2|child 2 data 3
parent 1 data A|parent 1 data B|child 3 data 1|child 3 data 2|child 3 data 3
parent 1 data A|parent 1 data B|child 4 data 1|child 4 data 2|child 4 data 3
parent 2 data A|parent 2 data B|child 1 data 1|child 1 data 2|child 1 data 3
parent 2 data A|parent 2 data B|child 2 data 1|child 2 data 2|child 2 data 3
parent 2 data A|parent 2 data B|child 3 data 1|child 3 data 2|child 3 data 3
parent 2 data A|parent 2 data B|child 4 data 1|child 4 data 2|child 4 data 3
- Mood:
accomplished
