PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : XML-Müll? junk after document element...



jean_luc_picard
19-06-2004, 16:49
Hallo Leute,

ich will mir gerade ein Skript schreiben, welches einige ftp-Verzeichnisse spiegelt. Ich bin zuerst auch ganz gut vorangekommen, aber nun erhalte ich beim Auslesen meiner Konfigurationsdatei (XML-Format) immer die Meldung:

junk after document element at line 16, column 0, byte 635 at /usr/lib/perl5/vendor_perl/5.8.3/i586-linux-thread-multi/XML/Parser.pm line 187

Wie man sieht benutze ich zum Auslesen das XML Modul von Perl. Im Folgenden meine Konfigurationsdatei:



<mirror name="SuSE" localdir="/srv/private/Programme/Linux/RPM/SuSE/">
<source address="ftp.gwdg.de" directory="/pub/linux/suse/ftp.suse.com/suse/"/>
<source address="ftp.tu-chemnitz.de" directory="/pub/linux/suse/ftp.suse.com/suse/"/>
<source address="ftp.mpi-sb.mpg.de" directory="/pub/linux/mirror/ftp.suse.com/ftp.suse.com/suse/"/>
<subdirs>
i386/update/9.1/
i386/supplementary/KDE/update_for_9.1/
i386/supplementary/GNOME/update_for_9.1/
i386/supplementary/misc/update_for_9.1/
i386/supplementary/X/XFree86/SaX2/suse91/
i386/supplementary/X/XFree86/ATI/suse91/
</subdirs>
</mirror>


<mirror name="Packman" localdir="/srv/private/Programme/Linux/RPM/Packman/">
<source address="packman.iu-bremen.de" directory="/suse/"/>
<subdirs>
9.1/
</subdirs>
</mirror>


Wenn ich nur einen <mirror>-Tag angebe funktioniert das Auslesen problemlos... warum gibt es Probleme mit mehreren <mirror>-Tag's?

Gruß, Picard

peschmae
19-06-2004, 19:07
Vielleicht darf der Root-Knoten nur einmal vorkommen?
Ist das XML nach einer bestimmten DTD?

Sonstst verpackst du das am besten mal testweise alles in <root></root>-Tags

MFG Peschmä

jean_luc_picard
19-06-2004, 20:35
Super, danke... :)

War mir nicht bekannt, dass nur ein root erlaubt ist...

peschmae
19-06-2004, 22:43
Ich wüsste nicht dass das allgemein so ist. Aber in dem Fall offenbar ;)

Vielleicht wenn du keine DTD verwendest oder so :confused:
Ich hab auch nicht wirklich viel Ahnung von XML

MfG Peschmä

Pingu
20-06-2004, 09:10
Hi,

*g* aus beruflichen Gründen bin ich gerade zum (absoluten) XML-Experten geworden (ich sag nur ISO15745, falls das jemandem etwas sagt *g*).

Es ist richtig das Wurzelelement darf in einer XML-Datei nur einmal vorkommen (siehe auch hier: http://www.zvon.org/xxl/XMLTutorial/Output/example2.html ).

Es wäre auch gut, eine passende DTD oder besser ein passendes XML Schema zu definieren, dann kann der Parser im vorhinein prüfen, ob das XML Document formal richtig ist.

Pingu

fs111
20-06-2004, 11:54
evtl. solltest Du auch das mit den subdirs anders lösen, so dass jeder Pfad in einem speziellen Element landet, etwas so:


<subdirs>
<dir> i386/update/9.1/</dir>
<dir> i386/supplementary/KDE/update_for_9.1/ </dir>
[...]
</subdirs>

Das macht das Dokument strukturierter.

fs111

jean_luc_picard
20-06-2004, 14:05
Das mehrfache Erwähnen von "DTD" hat mich mal veranlasst bei google "nachzuschlagen" (hatte bis eben keinen Schimmer was das ist ;))... dabei wurde dann auch gleich eine Frage beantwortet, die ich mir beim Schreiben meines Skriptes gestellt habe. Ich hab nämlich angefangen, es wieder komplizierter zu machen als es ist ;) und die Gültigkeit von Tags per if-Abfragen zu prüfen... mit einer DTD kann man sich das dann ja sparen, wenn ich das richtig sehe...

Naja... dann werde ich mein Skript und die Konfigurationsdatei wohl nochmal überarbeiten ;)

Danke für die Hinweise :)
Gruß, Picard