xsltproc (interface de linha de comando para libxslt) está sempre disponível no RHEL.
uso: xsltproc xsl_stylesheet xml_file.
Existe algum utilitário semelhante ao xpath para analisar arquivos XML que seriam disponibilizados nativamente em um servidor RedHat?
Questões semelhantes foram respondidas em outro lugar , mas nenhuma das ferramentas listadas está no servidor .
atualização: xmllint está instalado, e man xmllint
indica que ele pode analisar arquivos xml, mas não está claro que isso me dá a capacidade de extrair uma string de um nó específico.
Se, dado este XML
$ cat a.xml <a> <b>Hello</b> <b>World</b> </a>
Você quer ser capaz de fazer
$ ./xpath //a/b a.xml Hello World
então você poderia simplesmente cortar & cole isto:
$ 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"; }
Você deve conseguir instalar o módulo XML :: LibXML usando perl -MCPAN -e 'install XML::LibXML'
XMLStarlet está em EPEL .
Experimente xmllint
e a opção --xpath
:
<xml>
<hello>world!</hello>
</xml>
$ xmllint --xpath '//hello/text()'
world!
No RHEL 7
yum install libxml2
te dá
xmllint
e pode analisar arquivos XML
# xmllint
Usage : xmllint [options] XMLfiles ...
Parse the XML files and output the result of the parsing