Re: New doubt !
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: 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
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