in reply to Re^2: Moving elements with XML::Twig: Document root closing tag is duplicated on output -- solution
in thread [SOLVED] Moving elements with XML::Twig: Document root closing tag is duplicated on output

yes clarify enough..

I see you have more experience that me. I just tried to bypass the unwanted behaviour cleaning as much as possible your code.

As for my first sentence i dunno what happen with your code. Anyway i msgd also the XML::Twig author about the possibility to spend some spare time with this problem.

Anyway the general advise of keep things simple is still valid. A stream of XML and the parser involved is something that can block even rough stomachs, at least mine. I'm sure (at this point) that you read carefully the docs, but in the part dedicated to twig_handlers is declared:

Warning: if you have used purge or flush on the twig the element might not be complete, some of its children might have been entirely flushed or purged, and the start tag might even have been printed (by flush) already, so changing its gi might not give the expected result.

that might be relevant in your case.

Have you noticed that changing $_[0]->flush(); to $_[0]->print(); in the sub does not provoke the unwanted behaviour?

But in the docs is said that print must be used AFTER the parse, so I've commented it in the sub and I've added it after the safe_parse $working_xml->print(); and $broken_xml->print(); respectively: the bad doubled closing tag does not appears anymore.

Share your further discoveries and good luck.

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.
  • Comment on Re^3: Moving elements with XML::Twig: Document root closing tag is duplicated on output -- further comments
  • Select or Download Code