xsl-list
[Top] [All Lists]

RE: Transformation of hierarchy, changing levels, and... back

2005-08-02 08:40:31
Are the parenthetical expressions meant to appear in the output document or are 
they there to illustrate the relationship between the elements in the input 
document and the elements in the output document?
--
Charles Knell
cknell(_at_)onebox(_dot_)com - email



-----Original Message-----
From:     Marcin Milkowski <milek_pl(_at_)o2(_dot_)pl>
Sent:     Tue, 02 Aug 2005 17:13:20 +0200
To:       xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
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(_at_)Lang=$blabla)

                some text1
                <g(_at_)id@barfoo/>       (<df>)
                some text2
                <g(_at_)id@foobar/>       (</df>)
                <ph(_at_)id>some optional text</ph>(=ut)
                some text
                <ph(_at_)id>some more text</ut>
                and some text
        </source>
        
        <target> (=Tu/Tuv(_at_)Lang=$foobar)
                some text1
                <g(_at_)id@barfoo/>       (<df>)
                some text2
                <g(_at_)id@foobar/>       (</df>)
                <ph(_at_)id>some optional text</ph>(=ut)
                some text
                <ph(_at_)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](_at_)Lang=foobar and Tu/Tuv[2](_at_)lLang=barfoo(_dot_) (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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--