xsl-list
[Top] [All Lists]

Re: parse multilanguage XML-file

2003-03-05 07:26:46
many thanks

it works fine

cheers,
jm

On Wed, 5 Mar 2003 13:35:05 -0000
"Andrew Welch" <AWelch(_at_)piper-group(_dot_)com> wrote:


Hi,

I'm guessing (without seeing the whole stylesheet), but I think because you 
dont have a template to match the root, the default template is being applied 
and will therefore apply-templates to both <lang> elements (eventually) - 
which fires the template matching <section> when you dont expect it to.

To only apply-templates to the <lang> of your choice, add a template matching 
the root and apply-templates specifically to that element:

<xsl:template match="/">
  <xsl:apply-tempaltes select="/page/pagecontent/lang[(_at_)name='de']"/>
</xsl:template>


cheers
andrew

-----Original Message-----
From: jm [mailto:mailinglist(_at_)DiabAnalyst(_dot_)de]
Sent: 05 March 2003 13:23
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] parse multilanguage XML-file


hi,

i have problems parsing my multilanguage XML file.

here is a short outline of the XML file:

<?xml version="1.0" encoding="ISO-8859-1"?>
<page>
<pagecontent>
    <lang name="de">
            <section>
                    ......
                    <!--
                            here comes for example the 
complete german content of
                            this file
                    -->

            </section>
    </lang>

    <lang name="en">
            <section>
                    ......
            </section>
    </lang>
</pagecontent>
</page>


now i want to match _only_ on of the language parts

so my first tamplate-match is 

<xsl:template match="/page/pagecontent/lang[(_at_)name='de']">
  <html>
    <body>
                  <xsl:apply-templates/>    <----------------+
    </body>                                                 
       |
  </html>                                                   
         |
  </xsl:template>                                           
      |
                                                            
            |
how can apply my following tamplates only on child-nodes of  
/page/pagecontent/lang[(_at_)name='de']
and _ignore_ all other language-nodes.

one of the folowing templates is

<xsl:template match="section">
            <xsl:value-of select="@title"/>
            <hr/>
            ...
</xsl:template>

and i want to apply this template only on child-nodes of the 
chosen language-node.

thanks
jm

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list





---
Incoming mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.458 / Virus Database: 257 - Release Date: 24/02/2003
 


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.458 / Virus Database: 257 - Release Date: 24/02/2003
 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>