This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: How to use an XML-based LUT with XSLT?
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Subject: RE: [xsl] How to use an XML-based LUT with XSLT?
- From: Taras Tielkes <taras at info dot nl>
- Date: Thu, 27 Sep 2001 17:26:50 +0200
- Reply-To: xsl-list at lists dot mulberrytech dot com
Oops,
The example at the end of my message should use the correct key name:
<xsl:value-of select="key('translate-error', ActualErrorCode)"/>
// tt
> -----Original Message-----
> From: Taras Tielkes [mailto:taras@info.nl]
> Sent: Thursday, September 27, 2001 5:19 PM
> To: 'xsl-list@lists.mulberrytech.com'
> Subject: RE: [xsl] How to use an XML-based LUT with XSLT?
>
>
> Hi Xavier,
>
> As far as I understand, your XML source, and the XML
> containing the mapping
> table are separate files.
> XSLT has a function to access external XML documents, it's called
> "document()".
> You could adapt your value-of element to something like:
>
> <xsl:value-of
> select="document('errors.xml')/Table/Message[@Code=ActualErrorCode]"/>
>
> Even better would be to cache the errors in hashmap using
> keys.(Note that
> the XSL processor is not required to use a hashmap, although
> it's likely)
>
> <xsl:key name="translate-error"
> match="document('errors.xml')/Table/Message"
> use="@code"/>
>
> Now you can use something like:
>
> <xsl:value-of select="key('errors', ActualErrorCode)"/>
>
> Regards,
>
> // tt
>
> > -----Original Message-----
> > From: Xavier Defrang [mailto:xavier@perceval.net]
> > Sent: Thursday, September 27, 2001 4:50 PM
> > To: Mulburrytech's XSL Mailing List
> > Subject: [xsl] How to use an XML-based LUT with XSLT?
> >
> >
> >
> > Hello folks,
> >
> > I've written a XSL document to transform XML into XHTML (yes,
> > that's a big
> > surprize!). The document contains some error codes and I'd like to
> > transform these numerical codes into an actual human-readable
> > message so I
> > built a small XML document as follow :
> >
> > <?xml version="1.0" standalone="yes"?>
> > <Table>
> > <Message Code="...">User-friendly error message</Message>
> > ...
> > </Table>
> >
> > Now I'd like to change my XSLT so I could look-up into the Table to
> > substitute numerical error codes by text messages with
> > something like :
> >
> > <xsl:value-of select="/Table/Message[@Code=ActualErrorCode]"/>
> >
> > Now the question is how do I "link" this table to my input
> > DOM so I can
> > reach the Message elements from within my XSLT? Is there any
> > possibility
> > to that with plain XSLT? (I don't want to use any engine-dependant
> > extensions)
> >
> > Maybe should I make a <xsl:choose>-based template matching
> > the elements
> > containing these codes?
> >
> > Thanks in advance,
> >
> > Xavier Defrang
> > Perceval R&D Team
> > xavier@perceval.net
> >
> > -------------------------------------------------
> > Perceval Technologies SA/NV Tel: +32-2-6409194
> > Rue Tenbosch, 9 Fax: +32-2-6403154
> > B-1000 Brussels http://www.perceval.net
> > BELGIUM info@perceval.net
> > -------------------------------------------------
> >
> >
> > XSL-List info and archive:
> http://www.mulberrytech.com/xsl/xsl-list
> >
>
> XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
>
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list