Gibt es ein natives Tool zum Parsen von XML-Dateien auf RedHat?


8

Gibt es ähnliche Hilfsprogramme wie xpath zum Parsen von XML-Dateien, die auf einem RedHat-Server nativ verfügbar wären?

Ähnliche Fragen wurden an anderer Stelle beantwortet , aber keines der aufgelisteten Tools befindet sich auf dem Server.

update: xmllint ist installiert und man xmllintgibt an, dass XML-Dateien analysiert werden können. Es ist jedoch nicht klar, ob ich damit eine Zeichenfolge von einem bestimmten Knoten extrahieren kann.

Antworten:


3

xsltproc (Befehlszeilenschnittstelle zu libxslt) ist auf RHEL immer verfügbar.
Verwendung: xsltproc xsl_stylesheet xml_file.


4

Wenn, diese XML gegeben

$ cat a.xml
<a>
  <b> Hallo </ b>
  <b> Welt </ b>
</a>

Du willst das können

$ ./xpath // a / b a.xml
Hallo
Welt

dann könntest du einfach folgendes ausschneiden und einfügen:

$ cat xpath
#! / usr / bin / perl
Verwenden Sie strenge;
verwende Warnungen;
benutze XML :: LibXML;

mein $ parser = XML :: LibXML-> new ();
mein $ document = $ parser-> parse_file ($ ARGV [1]);
my @nodes = $ document-> findnodes ($ ARGV [0]);
für meinen $ node (@nodes) {
  print $ node-> textContent, "\ n";
}

Sie sollten in der Lage sein, das XML :: LibXML-Modul mit zu installieren perl -MCPAN -e 'install XML::LibXML'


1
Oder einfach yum install 'perl(XML::LibXML)'.
Ignacio Vazquez-Abrams


3

Probieren Sie xmllintund die --xpathOption:

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

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

1
Schade, dass die Option "--xpath" nur für RedHat 7 verfügbar ist, das zum Zeitpunkt der Veröffentlichung dieser Frage nicht verfügbar war.
Chutz

Problemumgehung für frühere Versionen von xmllint: stackoverflow.com/a/38199367/185196
Joel Beckham

0

Auf RHEL 7

yum install libxml2

gibt Ihnen

xmllint

und es kann XML-Dateien analysieren

# xmllint 
Usage : xmllint [options] XMLfiles ...
        Parse the XML files and output the result of the parsing
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.