G'day rahulruns,
I think the method you're looking for is textContent(). XML::LibXML has good documentation. Unsurprisingly, methods relating to nodes can be found in XML::LibXML::Node.
Using the same data for all elements is a poor way to test: you've no way of knowing which "xxx,xxx" relates to which node.
Here's an example of using textContent(): the code starts much as yours does; I've improved the test data.
#!/usr/bin/env perl use strict; use warnings; use XML::LibXML; my $dom = XML::LibXML->load_xml(string => <<'EOT'); <?xml version="1.0" encoding="UTF-8"?> <cidconfig> <createnew> <logon>aaa,aaa</logon> <startnew>bbb,bbb</startnew> <choosecs>ccc,ccc</choosecs> <chooseapp>ddd,ddd</chooseapp> <chooseconfig>eee,eee</chooseconfig> <chooseconftype>fff,fff</chooseconftype> <startnew1>ggg,ggg</startnew1> <activate>hhh,hhh</activate> </createnew> </cidconfig> EOT my $root = $dom->getDocumentElement; my @records = $root->findnodes("//createnew"); my @kids; push @kids, $_->childNodes for @records; print $_->textContent for @kids;
Output:
aaa,aaa bbb,bbb ccc,ccc ddd,ddd eee,eee fff,fff ggg,ggg hhh,hhh
— Ken
In reply to Re: Get all child node values for a particular parent in xml into an array
by kcott
in thread Get all child node values for a particular parent in xml into an array
by rahulruns
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |