Existe uma ferramenta nativa para analisar arquivos xml disponíveis no RedHat?


7

Existem utilitários semelhantes ao xpath para analisar arquivos XML que seriam nativamente disponíveis em um servidor RedHat?

Perguntas similares foram respondidas em outro lugar , mas nenhuma das ferramentas listadas está no servidor.

atualizar: xmllint está instalado e man xmllint indica que ele pode analisar arquivos xml, mas não está claro se isso me permite extrair uma string de um nó específico.

Respostas:


3

O xsltproc (interface de linha de comando para libxslt) está sempre disponível no RHEL.
uso: xsltproc xsl_stylesheet xml_file.


4

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 & amp; 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 ser capaz de instalar o módulo XML :: LibXML usando perl -MCPAN -e 'install XML::LibXML'


1
Ou apenas yum install 'perl(XML::LibXML)'.
Ignacio Vazquez-Abrams


3

Experimentar xmllint e a --xpath opção:

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

$ xmllint --xpath '//hello/text()'
world!

1
Pena que a opção "--xpath" só está disponível no RedHat 7, que não estava por perto quando esta questão foi postada.
chutz

Solução alternativa para versões anteriores do xmllint: stackoverflow.com/a/38199367/185196
Joel Beckham

0

No RHEL 7

yum install libxml2

da-te

xmllint

e pode analisar arquivos XML

# xmllint 
Usage : xmllint [options] XMLfiles ...
        Parse the XML files and output the result of the parsing
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.