This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]