Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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.

share|improve this question

4 Answers 4

up vote 1 down vote accepted

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

share|improve this answer

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'

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

XMLStarlet is in EPEL.

share|improve this answer

Try xmllint and the --xpath option:

<xml>
  <hello>world!</hello>
</xml>

$ xmllint --xpath '//hello/text()'
world!
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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