Subject: [xsl] up-converting From: Jim_Albright@xxxxxxxxxxxx Date: Tue, 17 Aug 2004 13:02:52 -0400 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] for-each-group in XSL 2.0, Jeni Tennison | Thread | Re: [xsl] up-converting, Bruce D'Arcus |
Re: [xsl] Split HTML File Into XML , Trevor Majic | Date | Re: [xsl] XSLT SLOC counter ..., Wendell Piez |
Month |