doran has asked for the wisdom of the Perl Monks concerning the following question:
Here's an example of the results I'm looking for. In it, I want to update everything in the <jobs> node and below.
Given this "old" XML:
And this Update:<root> <info> <name>Joe Bleugh</name> <badge_id>1234</badge_id> <phone_ext>987</phone_ext> </info> <jobs> <chore> <desc>Wash Dishes</desc> <due>8-17-2000</due> </chore> <chore> <desc>Paint House</desc> <due>9-20-2000</due> </chore> </jobs> </root>
I want to produce:<root> <info> <badge_id>1234</badge_id> </info> <jobs> <chore> <desc>Mow Lawn</desc> <due>8-20-2000</due> </chore> <chore> <desc>Buy Car</desc> <due>10-1-2000</due> </chore> </jobs> </root>
Where none of the data outside the <jobs> node gets altered, but everything within it does get replaced.<root> <info> <name>Joe Bleugh</name> <badge_id>1234</badge_id> <phone_ext>987</phone_ext> </info> <jobs> <chore> <desc>Mow Lawn</desc> <due>8-20-2000</due> </chore> <chore> <desc>Buy Car</desc> <due>10-1-2000</due> </chore> </jobs> </root>
So my question isn't whether it can be done (of course it can) but rather about what's the best, easiest way of doing it. XML::Simple doesn't seem quite robust enough, whereas XML::Parser doesn't make it too easy. XML::Twig looks like it can do this, but my eyes started to cross after a couple of pages worth of docs. Before I went too much further reading anything at CPAN with the letters XML attached, I thought I'd ask here and see what y'all thought. Is there a module that's particularly well suited for this or do I just need to sit down with a Big Brew and write a bunch of subroutines for XML:Parser to go through?
Thanks, of course, for any insights.
db
|
---|
Replies are listed 'Best First'. | |
---|---|
RE: Replacing XML content
by Mushy (Scribe) on Aug 18, 2000 at 03:10 UTC | |
Re: Replacing XML content
by mirod (Canon) on Aug 30, 2000 at 21:12 UTC | |
Re: Replacing XML content
by doran (Deacon) on Aug 18, 2000 at 03:12 UTC |