Sorting/reordering XML files - Implementation/Design questions

Glenn R. Kronschnabl grk at
Tue Dec 8 15:07:53 GMT 1998

[Note: this is cross-posted between perl-xml and xml-dev.  I thought twice 
before I did this, but I couldn't talk myself out of it...]

I have a very simple app that I want to do.  Basically, I have an address 
list xml file built up using the vcard DTD, wrapped in a vCardSet.  It 
looks like:

<?xml version="1.0" encoding="UTF-8"?>
<vCardSet name="GRKs vCards">
<fn>Glenn Kronschnabl</fn>
<n>   <family>Kronschnabl</family>
<org><orgname>UT Austin</orgname></org>

Note that the order of <vCard>'s are not in any particular order.


I would like to be able to sort (on family, given, etc) then print using 
both  XSL/DSSSL.  I am shooting for a telephone book-like printout ala 
Microsoft Outlook 2-column phone book printout.

Q.  Should I pre-sort using Perl-XML and XML::DOM and write out a new XML 
file? Right now I have been trying to use XML::DOM and I'm close but I'm 
not sure what I am trying to do even makes sense?   The advantage of using 
the DOM is that I don't have to know anything about what I'm actually 
sorting accept for the relevant fields (the opposite would be to create 
the vCard data structure I guess). What are other people doing in this 
area?  What is the best way?  Should I rearrange the nodelist in memory or 
should I construct a new nodelist and write it out (not worrying about 
preserver whitespace)?


Q.  Could this be done using just SAX?  What are the tradeoffs?


Q.  Should I sort the xml list in DSSSL (would appear painful, at least to 
me).  I have found snippets in the dssslist that appear to give a good 
start, but if anyone has such a function around, that would help.

Actually, I presume that both could be used.  Just seems like a Perl-XML 
solution would be more generic and could be re-used more often.

Thanks for you inputs.

Glenn R. Kronschnabl
Applied Research Laboratories        | grk at (PGP/MIME ok)
The University of Texas at Austin    |
PO Box 8029, Austin, TX 78713-8029   | (Ph) 512.835.3642 (FAX) 512.835.3808
10,000 Burnet Road, Austin, TX 78758 | ... but an Aggie at heart!

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list