XML-File (UTF-8 kodiert) erstellen - WIE?

The_Marmot

Grünschnabel
Hallo,

ich habe:
- ein vorgegebenes Schema
- rund 29.000 HMI-Files (Hyperwave Metainformation) ähnlich wie XML
- den Auftrag nur 1 XML-File daraus zu erstellen (sprich: alle Infos aus der Masse an HMI-Files parsen und in ein XML-File klopfen)
- und keinen Plan, wie ich das ganze UTF-8 kodiert als XML speichern kann.

Listing der Dateinamen, die dann abarbeiten, einlesen und als XML speichern geht reibungslos, aber wie kann ich die Daten UTF-8 kodiert in die XML speichern?

Hab nämlich alle Sonderzeichen als zb ä usw. in den HMI-Files stehen. Wenn ich die XML mit XMLSpy aufmache, regt er sich auf, dass Sachen wie ä usw. erst deklariert werden muessen.
Kann aber nix deklarieren, weil ich das Schema (XSD) nicht ändern darf - nix dazu und nix weg und nix umschreiben!

Bin für jede Hilfe dankbar!

PS: Google und Forensuche wurden natürlich zuerst zu Rate gezogen, aber erfolglos - vielleicht hab ich die Lösung übersehen.

PPS: Schreib das ganze in Java mit Eclipse als EU.
 
Zuletzt bearbeitet:
Hallo,

da hab ich erstmal eine Frage. Wie "konvertierst" du das ganze denn in XML?

MFG

zEriX
 
Hej,

danke für deine schnelle Antwort. Das löst leider meine aktuelle Aufgabe nicht. Die Ausgabe als XML-File ist kein Problem - auch eventuelles Ersetzen usw. funktioniert prächtig. Ich glaub', dass da ein gröberer Fehler in der XSD liegt.

Trotzdem großen Dank für deine Hilfe und die raschen Antworten.

Lg, Marmot

--
(The hoary Marmot = das eisgraue Murmeltier)
 
Also dann verstehe ich dein Problem nicht. Du hast gesagt, dass du ä und so erst deklarieren musst, das aber nicht darfst, weil das XSD-File nicht geändert werden darf. Wenn du ä ersetzt, dann brauchst du es doch nicht zu deklarieren oder hab ich jetzt was falsch verstanden.

MFG

zEriX
 
Hej,

die Sache ist so, dass folgende Dinge beim Validieren im XMLSpy als Fehler gehandelt werden:

"ä" wird als Fehler angegeben
"ä" wird als Fehler angegeben
"%c3%a4" wird zwar nicht als Fehler angegeben, aber auch nicht als Umlaut übersetzt

Das einzige, was funktioniert ist "ae" anstelle von "ä". Nun ist aber das Problem, dass es auch Zeichen wie "á" = "á" gibt. Diese werden ebenso als Fehler gehandelt. Wenn ich hier nun statt "á" nur "a" (ohne Accent) ausgeben lasse, würde es zwar funktionieren, aber die lieben Auftraggeber reissen mir dann den Kopf ab, da es sich hierbei um die Metainformationen einer Enzyklopädie handelt. Hier geht es um Familiennamen, Orte usw.

Habe leider keinen Plan, wie ich das lösen soll. :confused:

Danke für deine Hilfe.
Alles liebe, Marmot
 
Dann sage ich mal, dass es nicht dieser Kodierung(UTF-8) nicht funktioniert. Wenn du das Schema nicht ändern darfst und UTF-8 vorgegeben ist. Da müsstest du eher auf UTF-16 gehen. Das einzige was mit noch einfallen würde wäre, falls du die XML-Datei wieder ausließt, dass du dir was überlegst wie du die Zeichen in die XML-Datei schreibst und dass du sie beim auslesen wieder "richtig konvertierst".

MFG

zEriX
 
Ich weis zwar nicht wie es in Java geht aber du musst alle Felder in denen Umlaute vorkommen können in CDATA Blöcke schreiben:

Code:
<item>
		<title><![CDATA[Gr?nder f?r drei Jahre ins Gef?ngnis]]></title>
</item>
 
Hej,

werd' mal CDATA versuchen. Sobald ich den *&%/$"! fertig hab, schreib ich ein Tutorial, wie und ob man das lösen kann. Ein Umsteigen auf UTF-16 ist, auf Grund des Auftraggebers, nicht möglich.

Wie gesagt, ich meld mich, sobald ich eine Lösung habe. Vielen lieben Dank für eure Hilfe!

Lg, Marmot

--
(Stefan)
 

Neue Beiträge

Zurück