Subject: RE: [xsl] Constructing hierarchical XML from a flat XML-tag seque nce using XSLT From: TSchutzerWeissmann@xxxxxxxxxxxxxxxx Date: Tue, 27 Aug 2002 11:55:55 +0100 |
Hi Lars, The easiest thing here is to use a key. <xsl:key name="childrenNotSiblings" match="b|c|d" use="generate-id(preceding-sibling::a[1])"/> <xsl:template match="a"> <a> <xsl:for-each select="key('childrenNotSiblings',generate-id())"> <xsl:copy-of select="."/> </xsl:for-each> </a> </xsl:template> If I've understood right you want to put all the non-a nodes that follow an empty a node inside it. Using a key will bundle all those nodes up and you can fetch them using a reference to the a node. cheers, Tom > -----Original Message----- > From: Lars Eskildsen [mailto:laes@xxxxxxxxx] > Sent: 27 August 2002 11:35 > To: XSLT List (E-mail) > Subject: [xsl] Constructing hierarchical XML from a flat XML-tag > sequence using XSLT > > > Hello! > > I want to be able to convert XML code like > > <XMLCODE> > <a/><b/><c/><d/> <a/><b/><c/><d/> <a/><b/><c/><d/> <a/><b/><c/><d/> > </XMLCODE> > > to the following XML: > > <NEWXMLCODE> > <a> > <b/> > <c/> > <d/> > </a> > <a> > <b/> > <c/> > <d/> > </a> > <a> > <b/> > <c/> > <d/> > </a> > </NEWXMLCODE> > > The DTD for the input XML is: <!ELEMENT XMLCODE (a | b | c | d)+> > a, b, c, d are empty tags > > The DTD for the output XML is: <!ELEMENT NEWXMLCODE (a+)> > <!ELEMENT a > (b | c | d)*> > b, c, d are empty tags > > Can this be done? and how? > I just can't figure it out! > > /Lars Eskildsen </xsl:template> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] Constructing hierarchical, Michael Kay | Thread | [xsl] html to xml, Alia Mikati |
Re: [xsl] Conditional Import of sty, David Carlisle | Date | RE: [xsl] using xsl:with-param in a, Niki Dinsey |
Month |