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


in reply to Get data from an XML file heading

Check out some of the XML tutorials online for explanations of attributes. Here are some examples of accessing attributes.

use warnings; use strict; use XML::LibXML; ### https://metacpan.org/pod/distribution/XML-LibXML/LibXML.pod ### https://grantm.github.io/perl-libxml-by-example/basics.html ### https://metacpan.org/pod/distribution/XML-LibXML/lib/XML/LibXML/El +ement.pod ### https://metacpan.org/pod/distribution/XML-LibXML/lib/XML/LibXML/No +de.pod my $dom = XML::LibXML->load_xml(string => <<'EOT'); <test> <result_summary total_records="594" total_pages="3" current_page="1" + records_this_page="250" download_key="xmxnxnxnxnxnxnxnxnx" time_star +t="2020-02-19 15:50:55" feed_version="1.44" /> </test> EOT ### get individual attribute by name: print "\n******* get individual attribute by name: ***********\n"; foreach my $attribute( $dom->findnodes('/test/result_summary/@total_pa +ges') ) { print "total_pages = ", $attribute->to_literal, "\n"; } ### get individual as hash refs: print "\n******* get individual attribute as hash refs: ***********\n" +; foreach my $result_sum ( $dom->findnodes('/test/result_summary') ) { print "total_pages = ", $result_sum->{total_pages}, "\n"; } ### get all attributes: print "\n******* get all attributes: ***********\n"; foreach my $attribute( $dom->findnodes('/test/result_summary/@*') ) { print $attribute->nodeName, " = ", $attribute->to_literal, "\n"; }

Output:

******* get individual attribute by name: *********** total_pages = 3 ******* get individual attribute as hash refs: *********** total_pages = 3 ******* get all attributes: *********** total_records = 594 total_pages = 3 current_page = 1 records_this_page = 250 download_key = xmxnxnxnxnxnxnxnxnx time_start = 2020-02-19 15:50:55 feed_version = 1.44