Schrift
[thread]8033[/thread]

XML Generierung

Leser: 1


<< |< 1 2 >| >> 17 Einträge, 2 Seiten
simps1
 2006-05-30 16:32
#66746 #66746
User since
2006-03-08
13 Artikel
BenutzerIn
[default_avatar]
Hallo!

Ich möchte ein XML generieren, vorzugsweise utf-8 encodet.

Dazu folgender Testinhalt eines Elementes:
Code: (dl )
$inhalt="hallo <#en#> hello mit ü und &-Zeichen";

Das XML soll dann so aussehen - aber eben korrekt encodet:
Code: (dl )
1
2
<?xml version="1.0" encoding="utf-8"?>
<test>hallo <#en#> hello mit ü und &-Zeichen</test>

Benutze ich nun das Unicode::String Transkoding, so werden die < > & nicht mit transkodet und ich bekomme einen Fehler vom XML-Parser.

Ignoriere ich einfach utf8 und benutze nur das HTML::Entities Transkoding, so meckert der XML-Parser bei den einfachen Umlauten wie dem ü.

Meine Frage: Wie encode ich den Inhalt eines XML-Elementes korrekt ohne Zeichen rauswerfen zu müssen?

Hoffe, Ihr könnt mir kurz helfen.

Schöne Grüße!
Teutales
 2006-05-30 16:37
#66747 #66747
User since
2006-03-21
47 Artikel
BenutzerIn
[default_avatar]
Mal ein ganz dummer Ansatz: Mach doch ein String Replace auf die Sonderzeichen...
< in &lt;
> in &gt;
ü in &uuml;
etcetc...
simps1
 2006-05-30 16:48
#66748 #66748
User since
2006-03-08
13 Artikel
BenutzerIn
[default_avatar]
Naja, die Idee ist nicht schlecht, ABER:

&uuml; ist ungültiges XML - da meckert der Parser und behauptet "Verweis auf eine nicht definierte Entität 'uuml'. Fehler beim Bearbeiten der Ressource "

Außerdem kann ich nicht alle Sonderzeichen manuell transkoden, da ich nicht weiß, welche auftreten (User-Eingabe).

Es muss doch eine Möglichkeit geben, einen String so utf8 zu encoden, daß *keine* Sonderzeichen übrigbleiben. Aber wie?

Vielen Dank
nepos
 2006-05-30 17:00
#66749 #66749
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, gibts da in XML nicht dieses CDATA um Text einzuschliessen?
Sorry, hab nicht wirklich Ahnung davon...
GwenDragon
 2006-05-30 17:15
#66750 #66750
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
1) Welche DTD benutzt du denn?

2)
Code: (dl )
<test>hallo <#en#> hello mit ü und &-Zeichen</test>
Das ist kein gültiges XML!
<#en#> hat kein schließendes Tag!\n\n

<!--EDIT|GwenDragon|1148995118-->
die Drachin, Gwendolyn


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

simps1
 2006-05-30 17:35
#66751 #66751
User since
2006-03-08
13 Artikel
BenutzerIn
[default_avatar]
Hallo!

Zu 1) Keine bestimmte DTD. Kann ich durch Angabe der DTD das Verhalten ändern? Parst der XML-Parser von Perl (XML::Simple) auch die DTD? Hatte bisher angenommen, die DTD würde von Perl nicht weiter beachtet werden und daher nie eine angegeben

Ich würde das allerdings ungern über eine bestimmte DTD lösen.

Zu 2) Ich weiß - deswegen schrieb ich ja "Das XML soll dann so aussehen - ABER EBEN KORREKT ENCODET" ;) <# ist ohnehin ungültiges XML, da nach der Klammer ein \w erwartet wird.

Wie würde Dein CDATA-Ansatz aussehen? Habe bisher noch nie damit gearbeitet.

Gruß
nepos
 2006-05-30 17:47
#66752 #66752
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Wenn ich das auf die Schnelle richtig gefunden hab in etwa so:
Code: (dl )
1
2
<?xml version="1.0" encoding="utf-8"?>
<test><![CDATA[hallo <#en#> hello mit ü und &-Zeichen]]</test>


Quelle: http://www.w3schools.com/xml/xml_cdata.asp
GwenDragon
 2006-05-30 18:12
#66753 #66753
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
CDATA klammert doch nur Inhalte vom XML-Parsen aus.

XML ohne DTD?
Quote
Die Regeln für erlaubte Elemente, Attribute und Verschachtelungsmöglichkeiten einer XML-gerechten Auszeichnungssprache werden unabhängig von den eigentlichen Daten definiert.


Entweder XML DTD oder XML Schema.
Parser müssen doch wissen, welche Elemente etc. vorhanden sind.

Was für eine Art XML soll das sein und wofür??

//Edit: Ach so, eine XML-Datenstruktur für Konfigdateien!?

Ich bin darauf reingefallen, dass du XML erzeugen wolltest.
Da dachte ich natürlich an Normkonformes XML nach W3C-Standard.\n\n

<!--EDIT|GwenDragon|1148998919-->
die Drachin, Gwendolyn


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

nepos
 2006-05-30 18:20
#66754 #66754
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hm, naja, das wo er Probleme hat, das ist doch nur Inhalt oder? Von daher waers denke ich schon ok, das vom Parsen auszunehmen oder?
GwenDragon
 2006-05-30 18:24
#66755 #66755
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Kein Ahnung, was er damit will.
Die Info ist eben zu diffus.
die Drachin, Gwendolyn


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

<< |< 1 2 >| >> 17 Einträge, 2 Seiten



View all threads created 2006-05-30 16:32.