Font
[thread]7025[/thread]

XML::Simple und &nbsp;: Windows <-> Mac

Tags: Similar Threads

Reader: 1


<< |< 1 2 3 4 >| >> 36 entries, 4 pages
Crian
 2005-05-31 19:34
#55197 #55197
User since
2003-08-04
5852 articles
ModeratorIn
[Homepage]
user image
Ich hab folgendes Problem. Eine XML-Datei enthält mehrere &nbsp;s, ich lese diese mit XML::Simple ein, Unter Windows ist das kein Problem, auf dem Mac bekomme ich die Meldung

Quote
Undeclared entity [Ln: XX, Col: YY]


Zeile und Spalte führen zu den &nbsp;s, entferne ich diese, läuft das Programm fehlerfrei durch.

Der Kopf der XML-Datei sieht so aus:

Code: (dl )
1
2
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">


Der Aufruf im Programm so:

Code: (dl )
my $xml = XMLin($file);


Das ist ja nun irgendwie ein Problem innerhalb des Moduls. Ich bin kurz davor, das Modul zum Mond zu schießen und das Parsing selbst zu machen...

Es klappt unter Windows (2000 und XP prof.) mit ActiveState Perl 5.8.6.811, es klappt nicht unter Mac OS X 10.4.2 mit Perl 5.8.6.

Irgendwelche Ratschläge oder Lösungsansätze?
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Ronnie
 2005-05-31 19:59
#55198 #55198
User since
2003-08-14
2022 articles
BenutzerIn
[default_avatar]
Unter Mac OS X ist UTF-8 normalerweise das übliche Charset. Womöglich kommt das Problem aus dieser Ecke.
GwenDragon
 2005-05-31 20:19
#55199 #55199
User since
2005-01-17
14075 articles
Admin1
[Homepage]
user image
[quote=Ronnie,31.05.2005, 17:59]Unter Mac OS X ist UTF-8 normalerweise das übliche Charset. Womöglich kommt das Problem aus dieser Ecke.[/quote]
Nun, das Encoding steht ja im XHTML-Quelltext und ist ISO-8859-1. Das sollte vom Parser ausgewertet und dann eben umgewandelt werden.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

GwenDragon
 2005-05-31 20:31
#55200 #55200
User since
2005-01-17
14075 articles
Admin1
[Homepage]
user image
Sind die Versionen von XML-Simple und XML-Parser auf den beiden Rechnern gleich?
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

Heromaster
 2005-05-31 20:35
#55201 #55201
User since
2003-08-05
220 articles
BenutzerIn
[default_avatar]
XML::Simple nutzt XML::SAX als bevorzugten Parser. Möglicherweise kann der Fehler auch daher kommen. Habe jetzt leider kein Perl hier, aber irgendwo in der Doc von XML::Simple steht wie Du es überreden kannst, XML::Parser zu benutzen.\n\n

<!--EDIT|Heromaster|1117557363-->
Derjenige, der zwei Hasen jagt, lässt einen zurück und verliert den anderen.
Crian
 2005-05-31 20:44
#55202 #55202
User since
2003-08-04
5852 articles
ModeratorIn
[Homepage]
user image
Ich hab schon versucht, die Version von XML::Simple rauszubekommen, leider scheint das Paket keine $VERSION Variable zu haben. Oder ich hab mich dumm angestellt :D

Auf dem Mac war vorher (mit Panther) noch ein Perl 5.8.1. Vielleicht behakt sich da irgenwas, das angezeigte Perldoc gehört nämlich zu diesem.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
Ronnie
 2005-05-31 21:30
#55203 #55203
User since
2003-08-14
2022 articles
BenutzerIn
[default_avatar]
[quote=GwenDragon,31.05.2005, 18:19]Nun, das Encoding steht ja im XHTML-Quelltext und ist ISO-8859-1. Das sollte vom Parser ausgewertet und dann eben umgewandelt werden.[/quote]
Ja, das meinte ich, aber womöglich hat crian die Datei ja bearbeitet und sie ist jetzt UTF-8.
ptk
 2005-05-31 22:35
#55204 #55204
User since
2003-11-28
3645 articles
ModeratorIn
[default_avatar]
XML::Simple vergessen und XML::LibXML verwenden! Da muss man etwas mehr coden, aber dafuer funktioniert es immer.
pq
 2005-05-31 23:23
#55205 #55205
User since
2003-08-04
12204 articles
Admin1
[Homepage]
user image
da kann ich ptk nur zustimmen. für sehr einfache datenstrukturen ist XML::Simple gut,
aber dann wird's haarig. je nach anforderung ist auch XML::Dumper eine möglichkeit.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Crian
 2005-06-01 13:10
#55206 #55206
User since
2003-08-04
5852 articles
ModeratorIn
[Homepage]
user image
Ok danke, werd mal einen Blick auf XML::LibXML werfen.

*werf*

Hmmm...

1) Gibts nicht bei ActiveState
2) Scheint ein Frontend zu sein für eine Gnome-Library

=> ungeeignet?

Es handelt sich wirklich um absolut simple XML-Dateien.


Die Dateien hab ich nicht bearbeitet, aber natürlich sollte es auch funktionieren, wenn ich sie bearbeitet habe. Soll ich es mal mit utf8 als encoding im XML-Header testen?

Edit: "uft8" statt "ISO-8859-1" bringt auch keinen Unterschied.\n\n

<!--EDIT|Crian|1117617486-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;

use strict; use warnings; Link zu meiner Perlseite
<< |< 1 2 3 4 >| >> 36 entries, 4 pages



View all threads created 2005-05-31 19:34.