Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: finding ancestor elements related to specific change

by tobyink (Abbot)
on Oct 17, 2012 at 23:09 UTC ( #999630=note: print w/replies, xml ) Need Help??

in reply to finding ancestor elements related to specific change

I'd strongly suggest dropping XML::Simple and using a DOM-based XML library. These tend to have useful methods called things like parentNode.

use XML::LibXML 1.70; my $xml = XML::LibXML->load_xml(string => <<'END'); <classes name="Panoply::BAR"> <public_methods> <members name="BAR" const="no" kind="function" protection="publ +ic" static="no" virtualness="non_virtual" volatile="no"> <parameters declaration_name="pciReg" type="Register::Ptr" /> </members> <members name="bits" const="no" kind="function" protection="pub +lic" static="no" type="void" virtualness="non_virtual" volatile="no"> <parameters declaration_name="value" type="uint64_t" /> </members> <members name="subBitVector" const="no" kind="function" protect +ion="public" static="no" type="void" virtualness="non_virtual" volati +le="no"> <parameters declaration_name="value" type="const BitVector &a +mp;" /> </members> </public_methods> <enums> <members name="ObjectState" kind="enum" protection="public" sta +tic="no" virtualness="non_virtual"> <values name="NEW"> </values> <values name="REFRESHED"> </values> <values name="DIRTY"> </values> </members> </enums> </classes> END my @results = $xml->findnodes('//*[@declaration_name="value"]'); foreach my $result (@results) { print "Got result, with parent: ", $result->parentNode->getAttribu +te('name'), "\n"; }
perl -E'sub Monkey::do{say$_,for@_,do{($monkey=[caller(0)]->[3])=~s{::}{ }and$monkey}}"Monkey say"->Monkey::do'

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://999630]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (3)
As of 2018-06-24 06:22 GMT
Find Nodes?
    Voting Booth?
    Should cpanminus be part of the standard Perl release?

    Results (126 votes). Check out past polls.