xsl-list
[Top] [All Lists]

RE: parse multilanguage XML-file

2003-03-05 06:35:05

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



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