|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] up-converting
My problem is to convert a WordML document to a standard XML document with
hierarchy. There are 6 possible levels of div.
Sample input
<?xml version="1.0" encoding="UTF-8"?>
<document>
<a>xxxxxxx</a>
<b>level1 head</b>
<c>level 2 head</c>
<!-- no pattern in following content -->
<d>blah</d>
<e>blah</e>
<f>blah</f>
<c>level 2 head</c>
<k>blah</k>
<h>level 3 head</h>
<i>blah</i>
<j>blah</j>
<c>level 2 head</c>
<d>blah</d>
<e>blah</e>
<f>blah</f>
<b>level 1 head</b>
<c>level 2 head</c>
<d>blah</d>
<e>blah</e>
<f>blah</f>
</document>
desired output
<?xml version="1.0" encoding="UTF-8"?>
<document>
<Title>xxxxxxx</Title>
<div>
<head>level1 head</head>
<div>
<head>level 2 head</head>
<!-- no pattern in following content -->
<d>blah</d>
<e>blah</e>
<f>blah</f>
</div>
<div>
<head>level 2 head</head>
<k>blah</k>
<div>
<head>level 3 head</head>
<i>blah</i>
<j>blah</j>
</div>
</div>
<div>
<head>level 2 head</head>
<d>blah</d>
<e>blah</e>
<f>blah</f>
</div>
</div>
<div>
<head>level1 head</head>
<div>
<head>level 2 head</head>
<d>blah</d>
<e>blah</e>
<f>blah</f>
</div>
</div>
</document>
I can get the level 1 head in a div working properly but am stuck getting
level 2 -6 to work at all.
I am using the group-starting-with of XSLT 2.0.
My WRONG XSLT is:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="document">
<document>
<xsl:apply-templates/>
</document>
</xsl:template>
<xsl:template match="a">
<title>
<xsl:value-of select="."/>
</title>
<xsl:for-each-group select="following::*" group-starting-with="b">
<div>
<head>
<xsl:value-of select="self::b"/>
</head>
<xsl:for-each select="current-group()">
<xsl:for-each-group select="following::*" group-starting-with="c">
<div>
<head>
<xsl:value-of select="self::c"/>
</head>
<xsl:for-each select="current-group()">
<xsl:copy-of select="."/>
</xsl:for-each>
</div>
</xsl:for-each-group>
</xsl:for-each>
</div>
</xsl:for-each-group>
</xsl:template>
</xsl:stylesheet>
Jim Albright
704 843-0582
Wycliffe Bible Translators
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








