<?xml version="1.0" encoding="windows-1252"?>
<node id="1006143" title="Re^5: XML::Twig and threads" created="2012-11-28 21:18:48" updated="2012-11-28 21:18:48">
<type id="11">
note</type>
<author id="879250">
remiah</author>
<data>
<field name="doctext">
&lt;p&gt;
Hello, BrowserUK.&lt;br&gt;&lt;br&gt;

I see. Example XML is just 613KB.&lt;br&gt;&lt;br&gt;
Copying Twig object is terribly slow. I guess Data::Dumper or dclone of storable will not do any good, because it is just huge.
&lt;code&gt;
    for ( $someData-&gt;children_copy( 'managedObject') ){
        handle_managedObject($t, $_);
    }
&lt;/code&gt;

Without copy, it is very fast.
&lt;code&gt;
    for ( $someData-&gt;children( 'managedObject') ){
        handle_managedObject($t, $_);
    }
&lt;/code&gt;
So, I vaguely imagined rewriting managedObject sub using regex, for example ...

&lt;pre&gt;
my ($t, $element)=@_;

# create rewrite rules using Twig 
my %rewrite_rules =(
    q/name="name"/ =&gt; "some value",
);


#replace with regex
my $buffer=$element-&gt;sprint; #get plain text of element
for (keys %rewrite_rules){
    $buffer =~ s/ $_  (.*?)  &gt;  .*?  (?=&lt;)
                /${_} ${1} $rewrite_rules{$_}/sx;
}

#just print out without changing $element
print $fh $buffer;

&lt;/pre&gt;
I will do like this, if I were.&lt;br&gt;&lt;br&gt;
Regards and thanks for your response. 

&lt;/p&gt;</field>
<field name="root_node">
1005623</field>
<field name="parent_node">
1006133</field>
</data>
</node>
