Subject: Re: [xsl] using document() function in match attribute of xsl:key element- possible? From: Jeni Tennison <mail@xxxxxxxxxxxxxxxx> Date: Fri, 11 May 2001 08:31:43 +0100 |
Hi Mike, > Ok I understand. Context! Thank you... Unfortunately this answer > doesn't solve my real problem =) > > I'm trying to remove text content from my stylesheets, and load the > text from a static xml document, called lang.xml. The xml source > will output an element called "lang", which will have a value like > "en" or "fr". I want my stylesheets to reference bits of text > content abstractly, using the value of lang to determine how to find > the actual text content within lang.xml. >From how you describe it, doesn't this stuff about keys exactly solve your problem? Assuming that the language is stored in a $lang variable, you can get the text by changing the context to the 'lang.xml' document and then using the key to retrieve the particular section in that language. Something like: <xsl:for-each select="document('lang.xml')"> <xsl:copy-of select="key('sections', $lang)" /> </xsl:for-each> Note that the xsl:copy-of could be an xsl:apply-templates if you needed to process the language-specific static XML some more. Perhaps if you gave some more details about how the language-specific text is stored in lang.xml and how/where you needed it to be inserted into your result the problem would be clearer for us. > More broadly, my problem is this: How do I approach developing xsl > stylesheets that are language-independent, where all text content is > retreived from a static XML source? Are there established methods > for accomplishing this? Are there any good tutorials or sites > describing how to do it? You might be interested in how Norm (Walsh) solved similar problems in the DocBook stylesheets. There were certain bits in the stylesheet that contained generated text, things like 'Chapter' or 'Page' or whatever, that he needed translated. Those terms were separated into another document and indexed by language. He also realised that different languages might have different structures (e.g. the 'Chapter' text and the number of the chapter might appear in two different orders), so has templates for those structures in a separate file as well. (I don't personally agree with the use of text substitution within those 'templates' - they're a lot easier to use if you use elements instead - but the principle is there.) The DocBook stylesheets are available from www.docbook.org. I hope that helps, Jeni --- Jeni Tennison http://www.jenitennison.com/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] using document() function, Mike McGraw | Thread | RE: [xsl] using document() function, Michael Kay |
Re: [xsl] apply-templates, rule-bas, Jeni Tennison | Date | Re: [xsl] running headings: current, Jeni Tennison |
Month |