| 
 
Subject: Re: [xsl] Ordering by child node attribute From: Markus Abt <abt@xxxxxxxx> Date: Tue, 27 Dec 2011 21:30:26 +0100  | 
Hi, start with all Class elements without a SuperClass attribute, then use recursion using the SubClass attribut: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="root"> <root> <xsl:apply-templates select="Class[not(SuperClass)]" /> </root> </xsl:template> <xsl:template match="Class"> <xsl:copy-of select="."/> <xsl:apply-templates select="../Class[@code=current()/SubClass/@code]" /> </xsl:template> </xsl:stylesheet> Kind regards, Markus ---------- Von: Gian Paolo Bernardini - TeleTu Gesendet: Dienstag, 27. Dezember 2011 14:40 An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx Betreff: [xsl] Ordering by child node attribute Hi all, I'd like to order an xml from this form: <?xml version="1.0" encoding="UTF-8"?> <root> <Class code="B" kind="component"> <SubClass code="b1"/> <SubClass code="b2"/> </Class> <Class code="b1" kind="chapter"> <SuperClass code="B"/> <SubClass code="b110-b139"/> </Class> <Class code="b2" kind="chapter"> <SuperClass code="B"/> <SubClass code="b210-b229"/> </Class> <Class code="b110-b139" kind="block"> <SuperClass code="b1"/> <SubClass code="b110"/> </Class> <Class code="b210-b229" kind="block"> <SuperClass code="b2"/> <SubClass code="b210"/> </Class> <Class code="b110" kind="fourdigit"> <SuperClass code="b110-b139"/> </Class> <Class code="b210" kind="fourdigit"> <SuperClass code="b210-b229"/> </Class> </root> to this form: <?xml version="1.0" encoding="UTF-8"?> <root> <Class code="B" kind="component"> <SubClass code="b1"/> <SubClass code="b2"/> </Class> <Class code="b1" kind="chapter"> <SuperClass code="B"/> <SubClass code="b110-b139"/> </Class> <Class code="b110-b139" kind="block"> <SuperClass code="b1"/> <SubClass code="b110"/> </Class> <Class code="b110" kind="fourdigit"> <SuperClass code="b110-b139"/> </Class> <Class code="b2" kind="chapter"> <SuperClass code="B"/> <SubClass code="b210-b229"/> </Class> <Class code="b210-b229" kind="block"> <SuperClass code="b2"/> <SubClass code="b210"/> </Class> <Class code="b210" kind="fourdigit"> <SuperClass code="b210-b229"/> </Class> </root> I can't use 'sort' or 'grouping-by' because it returns for example b110 before b110-b139, which is not what I'm searching for. If anyone has an idea it would be glad :) Thanks in advance and happy new year PS. currently I'm using SaxonHE9-4-0-1J, sometimes Xalan. I've no constraints on the XSL versions.
| Current Thread | 
|---|
  | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] Ordering by child node at, Marc | Thread | [xsl] Using "except" where some nod, Costello, Roger L. | 
| Re: [xsl] From filepaths to XML hie, Dimitre Novatchev | Date | [xsl] Using "except" where some nod, Costello, Roger L. | 
| Month |