ClausVB
Registered User
Ich möchte eine einfache Ausgabe einer XML-Datei mit Perl erzeugen. Später soll diese dann in SSI-Dateien verwandelt werden, aber das ist erst der zweite Schritt.
Das Perl-Skript
gibt nichts aus.
Ändere ich den Wert "rubrik0" auf "rubrik1" werden wenigstens die Unterrubriken (also "rubrik1" und rubrik2") ausgegeben.
Ich benötige bei der Ausgabe jedoch alle Werte.
Mit "perl xml" habe ich gegoogelt und mir folgende Seiten angesehen:
1. infos24 Perl ->XML auslesen mit Perl
2. infos24 xml, xsl, xpath > Auslesen einer XML Datei mit dem Perl Modul XML::LIBXML
3. XML.com: Perl XML Quickstart: The Perl XML Interfaces
Hinweis: Mein Ansatz ist dem in Nummer 2 ähnlich.
Danke und Gruß
Claus
Code:
<?xml version="1.0" encoding="UTF-8"?>
<rubrik0>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles</verzeichnis>
<name_der_rubrik>Aktuelles</name_der_rubrik>
<rubrik1>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/hinweise</verzeichnis>
<name_der_rubrik>Aktuelle Hinweise</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/pressemitteilungen</verzeichnis>
<name_der_rubrik>Pressemitteilungen</name_der_rubrik>
<rubrik2>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/pressemitteilungen/2009</verzeichnis>
<name_der_rubrik>Pressearchiv 2009</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/pressemitteilungen/2008</verzeichnis>
<name_der_rubrik>Pressearchiv 2008</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/pressemitteilungen/2007</verzeichnis>
<name_der_rubrik>Pressearchiv 2007</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/pressemitteilungen/2006</verzeichnis>
<name_der_rubrik>Pressearchiv 2006</name_der_rubrik>
</rubrik2>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/termine</verzeichnis>
<name_der_rubrik>Termine</name_der_rubrik>
<rubrik2>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/termine/ks</verzeichnis>
<name_der_rubrik>Kreistagssitzungen</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/termine/ska</verzeichnis>
<name_der_rubrik>Sitzungen Kreisausschüsse</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/termine/sk</verzeichnis>
<name_der_rubrik>Sitzungskalender</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/termine/fk_2005</verzeichnis>
<name_der_rubrik>Ferienkalender</name_der_rubrik>
</rubrik2>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/stellenboerse</verzeichnis>
<name_der_rubrik>Stellenbörse</name_der_rubrik>
<rubrik2>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/stellenboerse/as</verzeichnis>
<name_der_rubrik>Aktuelle Stellenangebote</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/stellenboerse/links</verzeichnis>
<name_der_rubrik>Links</name_der_rubrik>
</rubrik2>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/oeffentliche_ausschreibungen</verzeichnis>
<name_der_rubrik>Öffentliche Ausschreibungen</name_der_rubrik>
<externer_hyperlink></externer_hyperlink>
<verzeichnis>/cms200/aktuelles/amadobk</verzeichnis>
<name_der_rubrik>Aktuelle Medienmeldungen</name_der_rubrik>
</rubrik1>
</rubrik0>
Das Perl-Skript
Code:
#!/bin/perl -w
use strict;
use XML::LibXML;
my $datei = 'xml_beispiel_datei.xml';
my $mein_objekt = XML::LibXML->new();
my $Baumobjekt = $mein_objekt->parse_file($datei);
my $wurzel = $Baumobjekt->getDocumentElement;
my @knoten = $wurzel->getElementsByTagName('rubrik0');
foreach my $einzelne_knoten (@knoten)
{
my $name_des_knotens = $einzelne_knoten->getName();
my $inhalt_des_knotens = $einzelne_knoten->textContent;
if ($name_des_knotens ne '')
{
print "$name_des_knotens = $inhalt_des_knotens\n";
}
}
gibt nichts aus.
Ändere ich den Wert "rubrik0" auf "rubrik1" werden wenigstens die Unterrubriken (also "rubrik1" und rubrik2") ausgegeben.
Ich benötige bei der Ausgabe jedoch alle Werte.
Mit "perl xml" habe ich gegoogelt und mir folgende Seiten angesehen:
1. infos24 Perl ->XML auslesen mit Perl
2. infos24 xml, xsl, xpath > Auslesen einer XML Datei mit dem Perl Modul XML::LIBXML
3. XML.com: Perl XML Quickstart: The Perl XML Interfaces
Hinweis: Mein Ansatz ist dem in Nummer 2 ähnlich.
Danke und Gruß
Claus