[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
When taking this further i have realised that maybe the problem is more complicate dthan i first thought, see u what u think below::
(apologies for the layout, done in hotmail so may look a little shabby)
the xml file looks like this:
and i was trying to recode it to nest:
also, at the same time i thought that renaming different levelled hets would be a good idea- any het with 1-9 = res, 1.1-1.9 = rol, 1.1.1-1.1.9 = prod,
so it would look like
<t>
<res>
<rol>
<prod>
</prod>
<prod>
</prod>
</rol>
<rol>
<prod>
</prod>
</rol>
</res>
</t>
would i have to create new elements or is there a function to change element names??
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: [xsl] restructuring element hierarchy using xslt- complications
Subject: Re: [xsl] restructuring element hierarchy using xslt- complications From: "james walker" <jameswalkerandy@xxxxxxxxxxx> Date: Tue, 30 Sep 2003 12:27:16 +0100 |
When taking this further i have realised that maybe the problem is more complicate dthan i first thought, see u what u think below::
(apologies for the layout, done in hotmail so may look a little shabby)
the xml file looks like this:
<t> <het position="1"> <entrydata columnnumber="0"> <text>some more text here</text></entrydata> </het> <het position="1.1"> <entrydata columnnumber="1"> <text>some more text here</text></entrydata> </het> <het position="1.1.1"> <entrydata columnnumber="2"> <text>text here</text></entrydata> <entrydata columnnumber="3"> <text>more text here</text></entrydata> <entrydata columnnumber="4"> <text>more text here</text></entrydata> <entrydata columnnumber="5"> <text>more text here</text></entrydata> <entrydata columnnumber="6"> <text>more text here</text></entrydata> <entrydata columnnumber="7"> <text>more text here</text></entrydata> <entrydata columnnumber="8"> <text>more text here</text></entrydata> <entrydata columnnumber="9"> <text></text></entrydata> </het> <het position="1.1.2"> <entrydata columnnumber="2"> <text>text here</text></entrydata> <entrydata columnnumber="3"> <text>more text here</text></entrydata> <entrydata columnnumber="4"> <text>more text here</text></entrydata> <entrydata columnnumber="5"> <text>more text here</text></entrydata> <entrydata columnnumber="6"> <text>more text here</text></entrydata> <entrydata columnnumber="7"> <text>more text here</text></entrydata> <entrydata columnnumber="8"> <text>more text here</text></entrydata> <entrydata columnnumber="9"> <text></text></entrydata> </het> <het position="2"> <entrydata columnnumber="0"> <text>some more text here</text></entrydata> </het> <het position="2.1"> <entrydata columnnumber="1"> <text>some more text here</text></entrydata> </het> <het position="2.1.1"> <entrydata columnnumber="2"> <text>text here</text></entrydata> <entrydata columnnumber="3"> <text>more text here</text></entrydata> <entrydata columnnumber="4"> <text>more text here</text></entrydata> <entrydata columnnumber="5"> <text>more text here</text></entrydata> <entrydata columnnumber="6"> <text>more text here</text></entrydata> <entrydata columnnumber="7"> <text>more text here</text></entrydata> <entrydata columnnumber="8"> <text>more text here</text></entrydata> <entrydata columnnumber="9"> <text></text></entrydata> </het> </t>
and i was trying to recode it to nest:
<t> <het position="1"> <entrydata columnnumber="0"> <text>some more text here</text></entrydata> <het position="1.1"> <entrydata columnnumber="1"> <text>some more text here</text></entrydata> <het position="1.1.1"> <entrydata columnnumber="2"> <text>text here</text></entrydata> <entrydata columnnumber="3"> <text>more text here</text></entrydata> <entrydata columnnumber="4"> <text>more text here</text></entrydata> <entrydata columnnumber="5"> <text>more text here</text></entrydata> <entrydata columnnumber="6"> <text>more text here</text></entrydata> <entrydata columnnumber="7"> <text>more text here</text></entrydata> <entrydata columnnumber="8"> <text>more text here</text></entrydata> <entrydata columnnumber="9"> <text></text></entrydata> </het> <het position="1.1.2"> <entrydata columnnumber="2"> <text>text here</text></entrydata> <entrydata columnnumber="3"> <text>more text here</text></entrydata> <entrydata columnnumber="4"> <text>more text here</text></entrydata> <entrydata columnnumber="5"> <text>more text here</text></entrydata> <entrydata columnnumber="6"> <text>more text here</text></entrydata> <entrydata columnnumber="7"> <text>more text here</text></entrydata> <entrydata columnnumber="8"> <text>more text here</text></entrydata> <entrydata columnnumber="9"> <text></text></entrydata> </het> </het> </het> <het position="2"> <entrydata columnnumber="0"> <text>some more text here</text></entrydata> <het position="2.1"> <entrydata columnnumber="1"> <text>some more text here</text></entrydata> <het position="2.1.1"> <entrydata columnnumber="2"> <text>text here</text></entrydata> <entrydata columnnumber="3"> <text>more text here</text></entrydata> <entrydata columnnumber="4"> <text>more text here</text></entrydata> <entrydata columnnumber="5"> <text>more text here</text></entrydata> <entrydata columnnumber="6"> <text>more text here</text></entrydata> <entrydata columnnumber="7"> <text>more text here</text></entrydata> <entrydata columnnumber="8"> <text>more text here</text></entrydata> <entrydata columnnumber="9"> <text></text></entrydata> </het> </het> </het> </t> but still hvaing a meard with it, any suggestions would be appreciated.
also, at the same time i thought that renaming different levelled hets would be a good idea- any het with 1-9 = res, 1.1-1.9 = rol, 1.1.1-1.1.9 = prod,
so it would look like
<t>
<res>
<rol>
<prod>
</prod>
<prod>
</prod>
</rol>
<rol>
<prod>
</prod>
</rol>
</res>
</t>
would i have to create new elements or is there a function to change element names??
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Subject: Re: [xsl] restructuring element hierarchy using xslt Date: Mon, 29 Sep 2003 07:23:19 -0700 (PDT)
This transformation:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:variable name="Digits" select="1234567890"/>
<xsl:template match="/*"> <t> <xsl:apply-templates select="het[not(contains(@position, '.'))]"/> </t> </xsl:template>
<xsl:template match="het"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:apply-templates select="../het[starts-with(@position, current()/@position) and string-length(translate(@position, $Digits, '' ) ) = 1 + string-length(translate(current()/@position, $Digits, '' ) ) ]"/> </xsl:copy> </xsl:template> </xsl:stylesheet>
When applied to your source.xml:
<t> <het position="1"></het> <het position="1.1"></het> <het position="1.1.1"></het> <het position="1.1.2"></het> <het position="1.2"></het> <het position="1.2.1"></het> <het position="2"></het> <het position="2.1"></het> <het position="2.1.1"></het> </t>
produces the wanted result:
<t> <het position="1"> <het position="1.1"> <het position="1.1.1"/> <het position="1.1.2"/> </het> <het position="1.2"> <het position="1.2.1"/> </het> </het> <het position="2"> <het position="2.1"> <het position="2.1.1"/> </het> </het> </t>
===== Cheers,
Dimitre Novatchev. http://fxsl.sourceforge.net/ -- the home of FXSL
> I have an xml document like this: > > <het position="1"></het> > <het position="1.1"></het> > <het position="1.1.1"></het> > <het position="1.1.2"></het> > <het position="1.2"></het> > <het position="1.2.1"></het> > <het position="2"></het> > <het position="2.1"></het> > <het position="2.1.1"></het> > > and i was trying to get it to look like this: > > <het position="1"> > <het position="1.1"> > <het position="1.1.1"> > </het> > <het position="1.1.2"> > </het> > </het> > <het position="1.2"> > <het position="1.2.1"> > </het> > </het> > </het> > <het position="2"> > <het position="2.1"> > <het position="2.1.1"> > </het> > </het> > </het> > > In other words make it nested. I can get the first set of elements out > by doing a contains() function in a predicate (<xsl:template > match="het[contains(@position, '.')=false]">) but i am having a problem > with template matching, i know i can't put a template match within a > template match and this is causing me a bit of trouble.
__________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
_________________________________________________________________ Get Hotmail on your mobile phone http://www.msn.co.uk/msnmobile
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] extract the right element, David Carlisle | Thread | [xsl] Re: restructuring element hie, Dimitre Novatchev |
[xsl] extract the right elements, clemens schrenk | Date | Re: [xsl] extract the right element, Jeni Tennison |
Month |