use strict;
use warnings;

use XML::Twig;

my $xml = <<XML;
<foo>
     <yahoo V="bay">
         <bay_id>
             <value>1</value>
             <fact>yes</fact>
         </bay_id>
         <bay_seen>
             <value>10</value>
             <fact>no</fact>
         </bay_seen>
         <bay_overall value="disabled"/>
         <bayking_list>
             <bayking id="kingjames" country="usa" active="true">
                 <bayking type="dictator"/>
                 <bay_usage value="none"/>
                 <bayking_origin>
<bayking_origin_name value="ohio_usa" emmigrate="no">
                              <economy_status_previous value="very poor" />
                       </bayking_origin_name>
                 </bayking_origin>
             </bayking>
         </bayking_list>
         <bayqueen_list>
             <bayqueen id="queenliz" country="france" active="true">
                 <bayqueen type="dictator"/>
                 <bay_usage value="none"/>
                 <bayqueen_origin>
<bayqueen_origin_name value="ohio_usa" emmigrate="no"/>
                 </bayqueen_origin>
             </bayqueen>
         </bayqueen_list>
     </yahoo>
     <yahoo V="baz">
         <bay_id>
             <value>1000</value>
             <fact>yes</fact>
         </bay_id>
         <bay_seen>
             <value>50</value>
             <fact>no</fact>
         </bay_seen>
         <bay_overall value="disabled"/>
         <bayking_list>
             <bayking id="kingtony" country="Russia" active="true">
                 <bayking type="dictator"/>
                 <bay_usage value="none"/>
                 <bayking_origin>
<bayking_origin_name value="ohio_usa" emmigrate="no">
                              <economy_status_previous value="very poor" />
                       </bayking_origin_name>
                 </bayking_origin>
             </bayking>
         </bayking_list>
         <bayqueen_list>
             <bayqueen id="queensarah" country="japan" active="true">
                 <bayqueen type="dictator"/>
                 <bay_usage value="none"/>
                 <bayqueen_origin>
<bayqueen_origin_name value="ca_usa" emmigrate="no"/>
                              <economy_status_previous value="very poor" />
                              <previous marriage="no"/>
                 </bayqueen_origin>
             </bayqueen>
         </bayqueen_list>
     </yahoo>
</foo>
XML

my $sabal = new XML::Twig(
             twig_roots          => {
                    '[EMAIL PROTECTED]"kingtony"]'   =>
                        sub {
                            my ($yabal, $element ) = @_;
                                 $element->print;
                         }
             }
);

above produces,

<bayking active="true" country="Russia" id="kingtony"><bayking type="dictator"/><bay_usage value="none"/><bayking_origin><bayking_origin_name emmigrate="no" value="ohio_usa"><economy_status_previous value="very poor"/></bayking_origin_name></bayking_origin></bayking>

which is very close to what i need but I really need it to traverse all the way top to <yahoo> and traverse down back all the way to </yahoo>..

I thought sub'ing $element->print to //../../$element->print would work but does not....

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to