[Baypiggies] XSLT vs Python for XML manipulation

Ramin Firoozye raminf at gmail.com
Fri May 23 20:14:51 CEST 2008

>> On Thu, May 22, 2008 at 4:41 PM, Stephen McInerney
>> <spmcinerney at hotmail.com> wrote:
>>> Can anyone point me to any good articles discussing the merits and
>>> limitations of XSLT vs Python (or XSLT into Python) for XML
>>> manipulation?
>>> (I inherited an existing flow using XSLT->PERL and I'm trying to
>>> scope how
>>> to
>>> implement some enhances, what to port, what to reuse. It is
>>> desirable to
>>> share
>>> as much of the existing codebase with other users if possible;
>>> however
>>> clean-coding
>>> everything in Python would be cleanest and most compact. It's hard
>>> to make
>>> the call.)
>> Imagine you're an automotive engineer fresh out of college and you go
>> to work for Mazda which uses a rotary engine.  XSLT is like a rotary
>> engine in that there's nothing else like it.  It's way out in left
>> field.
>> Personally, I like the Genshi templating engine because it's similar
>> enough to a normal templating engine, but it's got a bunch of
>> XSLT-like tricks up its sleeve.
> Yeah, the template language has some similar features, and then
> there's also the Transformer API which provides a programatic API for
> XML munging:
> http://genshi.edgewall.org/wiki/ApiDocs/genshi.filters.transform
> -- Matt

Depends on what your XSLT is doing. Genshi is great for templating but  
XSLT has more oomph when it comes to transformation - especially in  
recursively traversing the tree, and also in its XPath support. Most  
non-trivial XSLT scripts make extensive use of recursion, so if you  
decide to go the Genshi route, your biggest challenge will probably be  
to mimic that functionality. Personally, I'd try to do away with it  
altogether. All that recursion stuff makes the code tough to read and  
understand and (obviously) hard for someone to maintain later.

Also, might want to double-check the Genshi wiki to make sure the  
XPath functions you need are supported. Some of them only work in  
XPath predicates.

Good luck.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/baypiggies/attachments/20080523/b3bee087/attachment.htm>

More information about the Baypiggies mailing list