Re: [xsl] flatten tree

Subject: Re: [xsl] flatten tree
From: Jan Limpens <jan.limpens@xxxxxxxxx>
Date: Sun, 19 Sep 2004 18:11:10 -0300
Thanks, Michael,

sounds great (I will need some time to digest this chunky boolean ;))!

The reason why I am using my own lang definition (and it is using
xs:language as datatype, too) is, that my trials just gave me errors
and subsequentially I did not find any good (understandable and
reality oriented) information on the subject. And my fix worked well.
But hints are gladly welcome!

--Jan


On Sun, 19 Sep 2004 21:57:22 +0100, Michael Kay <mhk@xxxxxxxxx> wrote:
> Write a top-level stylesheet module that imports your "original" stylesheet
> module, with the rule:
>
> <xsl:template match="*">
>   <xsl:if test="@lang = $selectedLanguage or ((not(@lang) and
> $defaultLanguage = $selectedLanguage)">
>     <xsl:apply-imports/>
>   </xsl:if>
> </xsl:template>
>
> This works provided all the elements carrying a lang attribute are
processed
> using apply-templates rather than for-each, value-of, etc.
>
> Any reason you are using @lang rather than @xml:lang? (I'm just curious. I
> always thought the inclusion of @xml:lang in the XML spec, as the only name
> that has a predefined meaning, was rather an oddity, and I'm interested
that
> you are ignoring it and defining your own.)
>
> Michael Kay
> http://www.saxonica.com/
>
>
>
> > -----Original Message-----
> > From: Jan Limpens [mailto:jan.limpens@xxxxxxxxx]
> > Sent: 19 September 2004 21:30
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] flatten tree
> >
> > hi people,
> >
> > thanks in advance for all the great help you are giving to
> > the community!
> >
> > i habe a xml file like this:
> >
> > <root>
> >   <foo>
> >     <bar lang="de">Hallo</bar>
> >     <bar lang="en">Hello</bar>
> >     <bar lang="es">Ola</bar>
> >   </foo>
> >   <foo>
> >    <!-- No "de" here -->
> >     <bar lang="en">Good Bye</bar>
> >     <bar lang="es">Hasta la vista</bar>
> >   </foo>
> > </root>
> >
> > and an xsl file where I define
> >       <xsl:param name="selectedLanguage" select="'de'"/>
> >       <xsl:param name="defaultLanguage" select= "'en'"/>
> >
> > and I want a result like
> > <div>
> >    <p>Hallo</p>
> >    <p>Goodbye<p/><!--Fallback to "en"-->
> > </div>
> >
> > is there a good pattern for this situation?
> >
> > --
> > Jan
> > http://www.limpens.com
>
>



--
Jan
http://www.limpens.com

Current Thread