7

Существуют ли какие-либо утилиты, подобные xpath, для анализа файлов XML, которые были бы изначально доступны на сервере RedHat?

Подобные вопросы были даны ответы в другом месте, но ни один из перечисленных инструментов не находятся на сервере.

update: xmllint установлен, и man xmllint указывает, что он может анализировать XML-файлы, но не ясно, что это дает мне возможность извлечь строку из определенного узла.

5 ответов5

4

Если, учитывая этот XML

$ cat a.xml
<a>
  <b>Hello</b>
  <b>World</b>
</a>

Вы хотите быть в состоянии сделать

$ ./xpath //a/b a.xml
Hello
World

тогда вы можете просто вырезать и вставить это:

$ 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";
}

Вы должны иметь возможность установить модуль XML::LibXML, используя perl -MCPAN -e 'install XML::LibXML'

3

Попробуйте xmllint и параметр --xpath :

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

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

xsltproc (интерфейс командной строки для libxslt) всегда доступен на RHEL.
использование: xsltproc xsl_stylesheet xml_file.

3

XMLStarlet находится в EPEL.

0

На 7 РЕЛ

yum install libxml2

дает тебе

xmllint

и он может анализировать файлы XML

# xmllint 
Usage : xmllint [options] XMLfiles ...
        Parse the XML files and output the result of the parsing

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .