Bonjour,
Admettons que j'ai un flux XML avec des caractères spéciaux:
1 2
| <aaa&>val a</aaa&>
<bbb>val b &</bbb> |
Je voudrais remplacer le & dans toutes les valeurs de noeud mais dans aucune balise.
Actuellement j'ai essayé ceci:
1 2 3 4 5 6 7 8 9
|
String text = "&<balise & aa><a attr=\"3\"> &dfff&dfgdfg &</a &></balise>aaa&aaa <ba&lise2>blabla2</ba&lise2>";
String startWord = "[^(<[a-zA-Z0-9]*\\s)]";
String endWord = "[^(\\s[a-zA-Z0-9]*>)]";
String regex = "(?="+startWord+"|^)(\\&)(?="+endWord+"|$)";
String formattedText = text.replaceAll(regex, "[ET]");
System.out.println("Regex : " + regex);
System.out.println(" > " + formattedText); |
Après transformation, ma console m'affiche ce résultat:
> [ET]<balise & aa><a attr="3"> [ET]dfff[ET]dfgdfg [ET]</a &></balise>aaa[ET]aaa <ba[ET]lise2>blabla2</ba[ET]lise2>
<ba[ET]lise2> --> c'est pas bon 
J'ai beau me creuser la tête, je n'arrive désesperément pas à trouver la bonne expression pour mon besoin.. Est ce que l'un d'entre vous aurait une idée?
Merci.
Motin
Partager