Re: [xsl] New doubt !

Subject: Re: [xsl] New doubt !
From: Bharat Shetty <bharat.shetty@xxxxxxxxx>
Date: Tue, 3 May 2005 11:32:48 +0530
hi * ,

Thanks a lot for help. I used Daniel's suggestions and then Aron's
also. But I am struck at way you people have tried to answer my
question. This is top-notch and excellent one. And yes I made a bit
blunder in not making the subject line descriptive . I promise I will
do that in future.

Good addition to my helplines this ;)

Regards

bharat shetty
http://livejournal.com/~kewldeaf

" To err is human "


On 5/3/05, Aron Bock <aronbock@xxxxxxxxxxx> wrote:
> Bharat, 2 people have answered to this by now, but I'm responding
> nonetheless because IMO those responses were either too involved or
> needlessly wordy.
>
> You already know that external XML files may be accessed via the document()
> function.  Thus, if you have an XSL file with document('lookups.xml') will
> access an XML file called 'lookups.xml' in the same folder as the XSL.
Note
> that document('/') returns you the input XML document if you wanted that
for
> some reason, and document('') returns the XSL document itself.
>
> In every case, ceteris paribus, the document() function returns the root of
> the referenced document.  You then navigate this simply by applying XPath
> expressions.  For example, assume the lookup file is as follows:
>
> lookups.xml
> =======
> <stores>
>     <store name="Bangalore Central" ID="2345"/>
>     <store name="Walmart" ID="4567"/>
> </stores>
>
> That your input XML file is as follows:
> =======
> <foo>
>     <store>
>         <RetailStoreName>Bangalore Central</RetailStoreName>
>     </store
> </foo>
>
> And that you wanted to convert this to:
> =======
>
> <foo>
>     <store>
>         <name>Bamgalore Central</name>
>         <id>2345>/id>
>     </store>
> </foo>
>
> You'd create an XSL file with the usual trappings, then do this:
>
> <!-- Since you expect to refer to lookups.xml many times, it's a good idea
> to create a top-level
> variable to refer to it -->
> <xsl:variable name="doc-lookups" select="document('lookups.xml')"/>
>
> <!-- the store-specific template; notice we traverse the lookup document
> like any other document -->
> <xsl:template match="store">
>     <store>
>         <name><xsl:value-of select="RetailStoreName"/></name>
>         <id><xsl:value-of select="$doc-lookups/stores/store[@name =
> RetailStoreName]/@name"/></id>
>     </store>
> </xsl:template>
>
> Regards,
>
> --A
>
> PS: Please try to use a more descriptive subjectline.  "How do I traverse
an
> external XML document?" would be more useful to people coming after you,
> than the one in this post.
>
> >From: Bharat Shetty <bharat.shetty@xxxxxxxxx>
> >Reply-To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> >Subject: [xsl] New doubt !
> >Date: Tue, 3 May 2005 08:29:11 +0530
> >
> >Hi all,
> >
> >I am glad I came across this group.
> >
> >I need to transform a XML to other structure XML using XSLT.
> >
> >Fine I have done that quite well according to my projects needs.
> >
> >Now the problem is ....
> >
> >When an input element of tag
> >
> ><RetailStoreID>Bangalore Central</RetailStoreID> is encountered in the
> >input XML ( Please note that At this stage since this XML is genreated
> >from some transaction handling code, I will not know in advance what
> >store will appear in that tag . But eventually all of them are assumed
> >to be in some lookup table that i will explain now ) , my XSLT should
> >be able to refer to some other XML that stores in this format
> >
> >Retail Store Name                      ID
> >===========================
> >Bangalore central                  2345
> >Walmart                               4567
> >
> >like that ....
> >
> >I tried using the document("reatilstoreids.xml") what to put in the
> >query after this is beating me ...
> >
> >When Walmart is encountered i need to get 4567 and if Bangalore
> >central i shud get 2345 through some testing so that thats is
> >displayed in the Output XML . Just help me on how to get ids of the
> >names encountered in the input XML in this other XML called
> >RetailerStoreIDs.xml
>
> _________________________________________________________________
> On the road to retirement? Check out MSN Life Events for advice on how to
> get there! http://lifeevents.msn.com/category.aspx?cid=Retirement
>
>


--
B.Bharat Shetty
8th semester CS&E
SJCE , Mysore

Current Thread