Hallo, für den Fall das du eine Lösung nicht schon selbst gefunden hast, kann dir vielleicht folgender kleiner Code weiterhelfen:
Java:In die Zwischenablage kopieren
public class Main
{
public static void main(String[] args)
{
String data = "";
try {
Scanner scanner = new Scanner(new File("data.xml"));
data = scanner.useDelimiter("\\Z").next();
scanner.close();
} catch(IOException e) {
e.printStackTrace();
}
System.out.println(data.replaceAll("<\\s*(([^>\\s]+)(?:\"[^\"]*\"|'[^']*'|[^>\"'\\s]|\\s+(?!/))+)\\s*/\\s*>", "<$1>-1</$2>"));
}
}
Das hier wäre also der RegEx (mit Escapesequenzen für Java):
Code:In die Zwischenablage kopieren
<\\s*(([^>\\s]+)(?:\"[^\"]*\"|'[^']*'|[^>\"'\\s]|\\s+(?!/))+)\\s*/\\s*>
und der entsprechende Ersetzungsausdruck:
Code:In die Zwischenablage kopieren
So sollte das ganze dann so ersetzt werden wie du es haben willst. Zumindest wenn ich bei meinem RegEx nichts übersehen habe.
EDIT: Die ganze Pattern und Matcher Geschichte mal durch ein simpleres "replaceAll" ersetzt.