Subject: RE: [xsl] Transformation of hierarchy, changing levels, and... back From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 2 Aug 2005 17:24:29 +0100 |
It looks to me as if what you're trying to describe is "group Tuv element by their @Lang value" So you need to look up Muenchian grouping (or XSLT 2.0 xsl:for-each-group if you can use 2.0). See http://www.jenitennison.com/xslt/grouping. But I may have misunderstood your requirement completely - I don't understand the notations in your problem description. Michael Kay http://www.saxonica.com/ > -----Original Message----- > From: Marcin Milkowski [mailto:milek_pl@xxxxx] > Sent: 02 August 2005 16:13 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Transformation of hierarchy, changing levels, > and... back > > hi, > > I've been trying to make some transformation from a structure: > > <Tu> > <Tuv> > @Lang > some text1 > <df>some text2</df> > <ut>some optional text</ut> > some text > <ut>some more text</ut> > and some text > </Tuv> > <Tuv> > @Lang > some text > <df> > some text > </df> > <ut>some optional text</ut> > some text > <ut>some more text</ut> > and some text > </Tuv> > </Tu> > > to a structure > > <trans-unit> (=Tu) > @id > <source> (=Tu/Tuv@Lang=$blabla) > > some text1 > <g@id@barfoo/> (<df>) > some text2 > <g@id@foobar/> (</df>) > <ph@id>some optional text</ph>(=ut) > some text > <ph@id>some more text</ut> > and some text > </source> > > <target> (=Tu/Tuv@Lang=$foobar) > some text1 > <g@id@barfoo/> (<df>) > some text2 > <g@id@foobar/> (</df>) > <ph@id>some optional text</ph>(=ut) > some text > <ph@id>some more text</ut> > and some text > </target> > </trans-unit> > > I tried to match //Tu, and then use for-each to match all > Tuv[1]/ut and > Tuv[2]/ut. This approach turned quite difficult because I had > to insert > ut at exactly the same position in source as it was in > Tuv[1]. Probably > I should use more templates and match //Tu/Tuv or something like > that, but I wouldn't know how to close the trans-unit tag (is there a > way to check if this Tuv is Tu/Tuv[1] or Tu/Tuv[2]?). Additionally, I > would need to produce a second file with ids replacing all > text between > tags in Tu/Tuv[1]@Lang=foobar and Tu/Tuv[2]@lLang=barfoo. (So > the text > must be uniquely numbered, or indexed in the other file). The > third step > would be to backconvert the transformed files into a source one. > > Any ideas what method would be the best in this case? All help very > appreciated. > > Best regards, > Marcin Milkowski
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Transformation of hierarchy, , Marcin Miłkowski | Thread | RE: [xsl] Transformation of hierarc, cknell |
Re: [xsl] Transformation of hierarc, David Carlisle | Date | [xsl] Standard Date/Time Publicatio, Bruso, John |
Month |