http://qs321.pair.com?node_id=801433


in reply to textContent() method in XML::LibXML ...

According to the libXML documentation this is what I would expect.

Try nodeValue.
Or maybe use a different Xpath along with the XML::LibXML::Text module.

As with some of your more recent posts, we could help you out more with a sample of the xml, and the xpath you are trying.
  • Comment on Re: textContent() method in XML::LibXML ...

Replies are listed 'Best First'.
Re^2: textContent() method in XML::LibXML ...
by biswanath_c (Beadle) on Oct 16, 2009 at 12:17 UTC

    nodeValue() worked! Thanks a lot!! That was VERY helpful! nodeValue() just picks the value of the current node. textCOntent() collates the values of the node and all its children and it's children's children and so on until the leaf is reached!!!

    Thanks again!


      I am trying with nodeValue() it not working
        my complete code is like this
        <config> <user>freddy</user> <passwd>longNails</passwd> <books> <book author="Steinbeck" title="Cannery Row"/> <book author="Faulkner" title="Soldier's Pay"/> <book author="Steinbeck" title="East of Eden"/> </books> </config> sub traverse { my $node = shift; print $node->nodeName() . "\n"; print $node->nodeValue() . "\n"; if( $node-> hasAttributes() ) { my @attrList = $node->attributes(); foreach my $attr (@attrList) { my $key = $attr->nodeName(); my $value = $attr->getValue(); print $key . "\t" . $value . "\n" ; } print "\n"; } if( $node-> hasChildNodes() ) { my @cns = $node->childNodes(); foreach my $cn (@cns) { my $key = $cn->getName(); if($key !~ /\#text/ ) { traverse($cn); } } } }
        gives errors could you help me