http://qs1969.pair.com?node_id=1002038


in reply to Re^2: XML Parse Change a Value and Write Back
in thread XML Parse Change a Value and Write Back

Don't use XML::Simple.

There's ,no easy solution, I think, because there's probably no XML module around that guarantees that the produced attributes are in the same order as they are parsed.

But XML::Simple guarantees almost absolutely nothing, not even that the output will have a similar structure as the input. It may even move data from content to attribute or vice versa. the only guarantee you get on the output of XML::Simple is that XML::Simple will be able to read it back in.

  • Comment on Re^3: XML Parse Change a Value and Write Back

Replies are listed 'Best First'.
Re^4: XML Parse Change a Value and Write Back
by bitingduck (Chaplain) on Nov 03, 2012 at 01:12 UTC
    You might get by with XML::Treebuilder. You build a tree from the original XML, and use XML::Element to find where you want to insert new elements and insert them, then dump the tree back to a file with the appropriate pretty printing. If I have time later I'll try to post a simple example. It's not as simple as XML::Simple, but it's not as much to wade through as XML::LibXML.
      Treebuilder is again good for parsing and writing the xml but its very difficult to find the node and modify a parameter value.