in reply to Re^7: xml::twig gathering all element and att and its value question
in thread xml::twig gathering all element and att and its value question

I was hoping this would work but still no go..
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" emmigrat +e="no"> <economy_status_previous value="very po +or" /> </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" emmigra +te="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" emmigrat +e="no"> <economy_status_previous value="very po +or" /> </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 po +or" /> <previous marriage="no"/> </bayqueen_origin> </bayqueen> </bayqueen_list> </yahoo> </foo> XML my $sabal = new XML::Twig( twig_roots => { 'foo/yahoo' => #'bayking[@id="kingtony"]' => sub { my ($yabal, $element ) = @_; if ( $yabal->bayking_list->bayking->att(' +id') eq 'kingtony' ) { $element->print; } } } ); $sabal->parse($xml);
  • Comment on Re^8: xml::twig gathering all element and att and its value question
  • Download Code

Replies are listed 'Best First'.
Re^9: xml::twig gathering all element and att and its value question
by Anonymous Monk on Nov 16, 2008 at 04:23 UTC
    I was hoping this would work but still no go..
    Why (what made you think it would work)? What errors do you get?
      actually i did make it work
      my $sabal = new XML::Twig( twig_roots => { 'foo/yahoo' => #'bayking[@id="kingtony"]' => sub { my ($yabal, $element ) = @_; if ( $element->first_child('bayking_li +st')->first_child('bayking')->att('id') eq 'kingtony' ) { $element->print; } } } ); $sabal->parse($xml);
      result-->
      <yahoo V="baz"><bay_id><value>1000</value><fact>yes</fact></bay_id><ba +y_seen><value>50</value><fact>no</fact></bay_seen><bay_overall value= +"disabled"/><bayking_list><bayking active="true" country="Russia" id= +"kingtony"><bayking type="dictator"/><bay_usage value="none"/><baykin +g_origin><bayking_origin_name emmigrate="no" value="ohio_usa"><econom +y_status_previous value="very poor"/></bayking_origin_name></bayking_ +origin></bayking></bayking_list><bayqueen_list><bayqueen active="true +" country="japan" id="queensarah"><bayqueen type="dictator"/><bay_usa +ge value="none"/><bayqueen_origin><bayqueen_origin_name emmigrate="no +" value="ca_usa"/><economy_status_previous value="very poor"/><previo +us marriage="no"/></bayqueen_origin></bayqueen></bayqueen_list></yaho +o>
      now I just need to work on putting this on hash of hash refernce...