RE: flatten tree
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: 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
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format