Frage zu XML Validation

freehawk

Mitglied
Hallo zusammen,

ich habe eine ganz doofe Frage, aber ich komme nicht drauf.

Aus einem System bekomme ich einen String, der eigentlich einer XML Datei entsprechen soll. Leider geht aber das Wandeln in einen JDOM Object über den SAX Builder schief. Es liegt daran, dass das XML File nicht valid ist.

XML:
<rain>
    <3h>0.58</3h>
</rain>

Das <3h> ist ungültig. Kann mir bitte einer Sagen warum und was dazu die Regel ist, ich bin gerade am überlegen um die den String dahingehnd nochmal untersuche bevor ich ihn versuche zu wandeln. Am Ursprungsstring kann ich leider nichts ändern, da er aus einem Fremdsystem kommt.

Was ist daran ungültig? Ich habe eigentlich gefunden, dass als Elementnamen alle Zeichen verwendet werden dürfen nur keine Satzzeichen außer -.

Danke

Gruß
Markus
 
Nun hätte ich nochmals eine Frage:

Ich versuche nun mittels regex einfach an die XML Daten wenn der Elementname mit einer Zahl beginnt einen Unterstrich davor zu setzten.

Code:
xmlString = xmlString.replaceAll( "(<)[0-9]", "<_" );
xmlString = xmlString.replaceAll( "(<\\/)[0-9]", "</_" );

Leider wird auch die Zahl ersetzt anstatt nur der Teil in der Klammer.

Hat mir hier nochmals jemand einen Tipp?
 
Java:
    xmlString = xmlString.replaceAll( "<([0-9])", "<_$1" );
    xmlString = xmlString.replaceAll( "<\\/([0-9])", "</_$1" );
 
Java:
xmlString = xmlString.replaceAll( "(</?)(\\d)([a-zA-Z]+)", "$1$3$2" );
oder eben dann
Java:
xmlString = xmlString.replaceAll( "(</?)(\\d)([a-zA-Z]+)", "$1_$2" );
wenn du es zu <_3> und </_3> umbenennen willst.
 

Zurück
Oben