jdom XML-Encoding auslesen

Hallo Leute,

ich hoffe, dass ich nicht einfach blind bin und es deswegen hier her gehört und nicht ins basic Forum.

Folgender Programmablauf:

Ich habe eine XML, die ich per JDOM auslese und dann das Rootelement habe, dass funktioniert auch alles super:)

Dann manipuliere ich daran rum und schreibe wieder die XML, funktioniert auch, dass einzige, was mich stört, dass ich das Encoding vom Schreiben im Code vorgebe. Ich möchte es aber eigentlich so realisieren. Encoding vom Eingangsxml in einer Variable und dann wieder nutzen.
Problem: Ich finde nicht, wo das Encoding steht.
Ich baue mir ein Document mit dem Saxbuilder(Filepath) und aus dem Document bekomme ich das Rootelement, nur habe ich nirgends das Encoding gefunden.

Langer Post zum Erklären und kurze Frage: Wie bekomme ich mit jdom das Encoding einer xml raus :)?

Dankeschön
 

Niki

Top Contributor
Ich hab jetzt mal nach deinem Problem gegoogelt, leider mit wenig Erfolg. Anscheinend gibt es über JDOM keine Möglichkeit an das Encoding ran zu kommen. Du müsstest das daher selber ermitteln
 
Hallo Niki,

danke für deine Antwort.

Kannst du mir einen Hinweis geben, wie ich das mache, ohne eine zusätzliche Lib einzubinden?
Da ich alles mit Jdom mache, würde ich ungern jetzt noch etwas anderes einbinden.
 

Noctarius

Top Contributor
Datei als Reintext einlesen und die erste Zeile holen, dann den Inhalt dieser Zeile selber auf das Encoding überprüfen. Allerdings gibt es auch XML Files ohne den Encoding-Header.
 

Niki

Top Contributor
nur mal quick'n dirty runtergeschrieben:
Java:
   public static String findEncoding(File f)throws IOException {
        BufferedReader br = new BufferedReader(new FileReader(f));
        String s = br.readLine();
        Pattern p = Pattern.compile("encoding=\".*\"");
        Matcher m = p.matcher(s);
        String encoding = null;
        if(m.find()){
            String sub = s.substring(m.start(), m.end());
            encoding = sub.substring(sub.indexOf("\"")+1, sub.lastIndexOf("\""));            
        }
        br.close();
        return encoding;
    }
 

Noctarius

Top Contributor
Als Regex nutz das hier "encoding=\"(.*?)\"" und dann als Group Nummer 1

Java:
   public static String findEncoding(File f)throws IOException {
        try {
            BufferedReader br = new BufferedReader(new FileReader(f));
            String s = br.readLine();
            Pattern p = Pattern.compile("encoding=\"(.*?)\"");
            Matcher m = p.matcher(s);
            String encoding = null;
            if(m.find()){
                return m.group(1).toUpperCase();
            }

            return "UTF-8";
        } finally {
            br.close();
        }
    }
 
Zuletzt bearbeitet:

Niki

Top Contributor
so ists natürlich noch schöner :)
kleiner fehler ist noch drin:
Java:
 return m.group(1);
 
Zuletzt bearbeitet:
Vielen Dank Leute, ich werde die Idee dem Reintextparsen nutzen, die Lösung ist natürlich auch schön, dass mit dem Default, falls nix vorhanden ist, habe ich mir auch so vorgestellt:)
 
Ich habe den Code noch etwas an mein System angepasst und da vielleicht jemand Interesse hat, poste ich Ihn nochmal hier. Mir geht es darum, dass ich ausserhalb kein Exceptionhandling jedesmal möchte

Java:
	public static String FindEncoding(String xmlFilePath) {
		BufferedReader reader = null;
		try {
			reader = new BufferedReader(new FileReader(xmlFilePath));
			Matcher encodingFinder = Pattern.compile("encoding=\"(.*?)\"").matcher(reader.readLine());
			if (encodingFinder.find()) {
				return encodingFinder.group(1).toUpperCase();
			}
		} catch (IOException ioex) {
			ConsoleOutput.WriteErrorToConsole("Error during usage of the Filestream!", ioex, true);
		}
		finally {
			if (reader != null) {
				try {
					reader.close();
				} catch (IOException ioex) {
					ConsoleOutput.WriteErrorToConsole("Error during closing of the Filestream!", ioex, true);
				}
			}
		}
		return "UTF-8";
	}
 
G

Gast2

Gast
Nur so nebenbei: Wurdest du schon mal drauf hingewiesen das man in Java normalerweise Methodennamen mit Kleinbuchstaben beginnt?
 
Jap, aber ich habe meine Gründe:
1. Ich programmiere C# und Java -> benutze einheitlich camel casing
2. So weiß ich, welche Funktionen in einer Lib oder einen Hauptprogramm von mir sind und nicht von Extern

Und um ehrlich zu sein, es gibt Vorteile von beiden Frameworks .net und java, aber kleine Methodennamen suggerieren mir immer was Richtung lokale Variablen :D
Jeder hat seine Vorlieben :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C XML encoding UTF-8 und JDOM XML & JSON 4
G JDom encoding ändern XML & JSON 2
P jdom encoding XML & JSON 4
P JDOM oder SAX XML & JSON 3
Hijo2006 Grundsätzliches zu JDOM 2.x XML & JSON 1
W Kindelemente mit JDOM eines bestimmten Attributes auslesen XML & JSON 6
S JDOM XML Datei darstellen Fehler! XML & JSON 2
S JDom XML ein Element hinzufügen. XML & JSON 1
C JDOM: Value ohne Unterelemente auslesen XML & JSON 1
Z XML Datei mit JDOM einlesen und verarbeiten XML & JSON 6
J JDOM XMLOutputter getPrettyFormat() XML & JSON 3
H JDOM setAttribute Reihenfolge XML & JSON 3
B XML aus einer URL im Internet lesen (JDOM) XML & JSON 4
F Aus XML mit JDOM aus Elementattributen Werte rauslesen XML & JSON 4
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
C xml validierung gegen xsd mit jdom: Fehlermeldung Cannot find the declaration of element ... XML & JSON 8
T Dom, Jdom, Sax XML & JSON 8
Helgon MalformedByteSequenceException und null JDOM Attribute XML & JSON 5
Helgon JDOM schreibt nicht XML & JSON 2
A XSl mit JDom auslesen XML & JSON 1
G xml, jdom "Entität wurde referenziert aber nicht deklariert." XML & JSON 4
A XSL und JDom XML & JSON 3
G jdom-Klassen in Eclipse importieren XML & JSON 2
S JDOM ohne XML Header erzeugen? XML & JSON 2
G JDOM - aus Children-Liste ein Child direkt ansprechen ohne XPath? XML & JSON 9
S JDOM nur Attribut Name XML & JSON 2
X JDom für SOAP Dateien geeignet? XML & JSON 3
T Xpath & JDOM Element Pfad ausgeben XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
S jdom hasChildren()? XML & JSON 1
T Frage zu getContent unter jdom XML & JSON 6
Z Tutorial für JDOM (XSD-Shema) XML & JSON 3
D jdom, xml, login-system XML & JSON 4
N JDOM: XML einlesen XML & JSON 4
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
lordcarlos jdom zu iso-8859-15 zwingen XML & JSON 4
E JDOM - letzem child Attribut hinzufügen XML & JSON 4
H Schema-Validierung mit JDOM XML & JSON 2
lordcarlos JDOM und entfernen von children XML & JSON 4
E JDOM - Problem beim Zusammenfügen zweier Dateien XML & JSON 2
T jdom.jar als Relativer Pfad in Eclipse einbinden XML & JSON 4
sparrow JDom Element.getChild("Name") liefert null obwohl vorhanden XML & JSON 4
S XML, UTF-8, JDOM und Umlaute XML & JSON 3
E XML - JDOM - Bäume: was würdet ihr hier machen? XML & JSON 11
A JDOM: Wert schreiben bzw. ändern XML & JSON 6
T JDOM Bibiliothek XML & JSON 3
K JDOM vs. DOM, Schnittstellen XML & JSON 5
P Große XML Datei mittels JDOM bearbeiten / einlesen XML & JSON 6
0x7F800000 jdom mit xml.transform inkompatibel, was soll ich nehmen? XML & JSON 2
T EXSD auslesen mit XPath und JDOM XML & JSON 8
A JDOM und Sonderzeichen < > XML & JSON 17
G Simples XML File einlesen mit JDom. Prefix not bound ? XML & JSON 2
N jdom problem beim lesen von child elementen XML & JSON 5
N problem bei xml lesen mit jdom XML & JSON 2
S Ampersand im Jdom-Element XML & JSON 2
N jdom - xslt-Verweis in .xml einfügen XML & JSON 3
S Jdom+java webstart XML & JSON 4
K html -> cyberneko -> xml -> jdom . XML & JSON 3
I JDom Text ändern XML & JSON 4
C jdom.Element nicht vorhanden? XML & JSON 4
W JDOM element ändern funzt nich :( [problem gelöst] XML & JSON 3
C XPath in JDOM klappt nicht XML & JSON 2
S Harte Nuss mit XML und JDOM XML & JSON 2
H mit JDOM Verarbeitungsanweisungen und Kommentare auslesen XML & JSON 2
B jdom: getChildren() problem XML & JSON 4
T Bild in XML per JDOM XML & JSON 4
D JDOM erzeugt leere xmlns Attribute XML & JSON 4
T Elemente zählen mit JDOM in XML XML & JSON 7
B jdom document aus string erzeugen? XML & JSON 1
M JDOM und XPath, zu Element zugehörigen XPath-Ausdruck XML & JSON 5
F JDOM und XPath - Problem mit Namespace ohne Prefix XML & JSON 5
T XML mit JDOM auslesen => langsam? XML & JSON 7
B jdom outputter ohne attribute XML & JSON 2
P Probleme mit JDom . addContent(int index,Collection c) XML & JSON 2
R key aus xml lesen mittels jdom XML & JSON 5
M JDOM Element ohne Inhalt kopieren ? XML & JSON 3
X JDOM SAXBuilder Validationschema - Problem XML & JSON 8
G einzelne tags mit jdom auslesen XML & JSON 4
F XML ( ca. 280 MB) JDom & SAXBuilder lesen = OutOfMemoryE XML & JSON 4
K JDOM SAXBuilder einlesen XML & JSON 6
S Ausgabe "asXML" mit Jdom XML & JSON 2
B Element an bestimmter Stelle einfügen (JDOM) XML & JSON 8
G XML mit JDOM ausgeben [Klappe die 1Mio.ste] XML & JSON 2
F XML mit JDOM auslesen XML & JSON 2
D JDOM auf den PC machen XML & JSON 6
J JDOM Unicode XML & JSON 2
J schema-Validierung mit xerces und jdom: bug in java 1.4? XML & JSON 9
P JDOM Werte verändern XML & JSON 4
S OutOfMemory mit JDOM XML & JSON 6
S org.jdom.document in String umwandeln. XML & JSON 2
M ISO-8859-1 >> UTF-8 + JDOM + Verwirrung. XML & JSON 2
J [Newbie] [JDOM] Element aus XML entfernen klappt nicht XML & JSON 4
J JDOM mit XML-Schema XML & JSON 8
P HTML-Sting in JDOM XML & JSON 7
B JDOM && ObjectOutputStream XML & JSON 8
B Versionskonflikt bei JDOM XML & JSON 9
B JDom -- getChild() liefert nicht nachvollziehbar null XML & JSON 2
M JDOM parse Exception XML & JSON 3
R JDOM Root-Element entfernen aber Rest behalten XML & JSON 10
M XML Elemente mit JDOM durch Text ersetzen XML & JSON 2

Ähnliche Java Themen

Neue Themen


Oben