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.

link|improve this question

75% accept rate
feedback

3 Answers

up vote 1 down vote accepted

xsltproc (command line interface to libxslt) is always available on RHEL.
usage: xsltproc xsl_stylesheet xml_file.

link|improve this answer
feedback

XMLStarlet is in EPEL.

link|improve this answer
feedback

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'

link|improve this answer
Or just yum install 'perl(XML::LibXML)'. – Ignacio Vazquez-Abrams Apr 5 '11 at 14:28
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.