From: itsme213 Date: 2005-10-10T03:26:51+09:00 Subject: Re: REXML Question If you expect to be doing a variety of transformations, I would recommend not doing mutations on the source xml tree, but instead creating a transformed copy of that tree. Straight Ruby works fine for that (much better than xslt, imho). "Phlip" wrote in message news:sv4Ze.1011$rx5.601@newssvr22.news.prodigy.net... > mike leonard wrote: > > > I'm looking at REXML as a possible alternative to some things I've been > > doing with XSLT, but I haven't the foggiest notion of how to accomplish > > even the simplest transformations. Using REXML, how would I go about, > > say, translating all 's into 's, or all 's into
> type="chapter">'s? > > > > Thank you kindly in advance, > > REXML is a DOM-style parser, not a transformer. > > To do what you said, off the top of my head I would ... > > doc = Document.new(File.read('some.xml')) > XPath.each(doc, '//em') do > |node| > node.name = 'emph' # or similar; check the members first > end > doc.write(File.open(''another.xml')) # or similar to write > > There; a transformation in a bottle. Because XPath.each() returns the actual > DOM nodes inside the parsed tree, and because writing on these nodes changes > that tree, you can loop thru the nodes and manipulate them using clever > XPath expressions. The system will accomodate most of the XML rules for you. > > -- > Phlip > http://www.greencheese.org/ZeekLand <-- NOT a blog!!! > >