xsl-list
[Top] [All Lists]

RE: Hash-Table in xsl?

2003-02-22 07:42:49
Think of <xsl:key> as defining a hash table.

Your problem is a classic grouping problem, and Muenchian grouping
solves it using xsl:key, which will usually be implemented using a hash
table behind the scenes.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Pankaj Shinde
Sent: 22 February 2002 12:27
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Hash-Table in xsl?


Hi,

Can one create a hash table some how in xsl?

My input xml :
--------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<wrapper>
 <data>
  <company>company1</company>
  <commodity>commodity1</commodity>
  <units>11</units>
 </data>
 <data>
  <company>company2</company>
  <commodity>commodity2</commodity>
  <units>22</units>
 </data>
 <data>
  <company>company1</company>
  <commodity>commodity3</commodity>
  <units>13</units>
 </data>
 <data>
  <company>company2</company>
  <commodity>commodity1</commodity>
  <units>21</units>
 </data>
</wrapper>

My output html :
----------------


     Company1
     Company2

      Commodity1
     11
     21

      Commodity2

     22

      Commodity3
     13






My Logic :
----------

for each data node
 if value of company has not been seen earlier
  create new column with value of company as heading for that column
  if value of commodity has not been seen earlier
   create new row with value of commodity as heading for that row
   put value of commodity in correct place.
 else
  if value of commodity has not been seen earlier
   create new row with value of commodity as heading for that row
   put value of commodity in correct place.

Problem :
---------
1. I can use preceding-sibling for checking whether "value of 
company is new" or "value of commodity is new". But this 
screws up performance for large xmls. 2. I can use 
java.util.Hashtable from within my xsl. How will this affect 
my performance. 3. Can Meunchian be modified for this problem?

Any help is appreciated.

regards,
<panx/>



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>