Is there a native tool for parsing xml files available on RedHat?
Are there any utilities similar to xpath for parsing XML files that would be natively available on a RedHat server?
Similar questions have been answered elsewhere, but none of the tools listed are on the server.
update: xmllint is installed, and man xmllint
indicates that it can parse xml files, but it is not clear that this gives me the ability to extract a string from a specific node.
Solution 1:
Try xmllint
and the --xpath
option:
<xml>
<hello>world!</hello>
</xml>
$ xmllint --xpath '//hello/text()'
world!
Solution 2:
If, given this XML
$ cat a.xml <a> <b>Hello</b> <b>World</b> </a>
You want to be able to do
$ ./xpath //a/b a.xml Hello World
then you could just cut & paste this:
$ cat xpath #!/usr/bin/perl use strict; use warnings; use XML::LibXML; my $parser = XML::LibXML->new(); my $document = $parser->parse_file($ARGV[1]); my @nodes = $document->findnodes($ARGV[0]); for my $node (@nodes) { print $node->textContent, "\n"; }
You should be able to install the XML::LibXML module using perl -MCPAN -e 'install XML::LibXML'