xmlファイルに&
を&
と置き換えたいと思います。ここでCDATAタグのJavaのパターンとマッチャ
は私のコードです:
//On match sur tous les <!CDATA[ ... ]>
Pattern p = Pattern.compile("<!\\[CDATA\\[((&)|[^\\]]|\\][^\\]]|\\]\\][^>])*\\]\\]>");
Matcher m = p.matcher(l_retour.toString());
String temp2 ="";
temp2 = l_retour.toString();
while(m.find()){
//Si il y a un '&'
if(m.group(2) != null){
//On remaplace les & remplacés précédement par un '&' simple car on se trouve dans une balise <!CDATA[]>
temp2 = temp2.replaceFirst(Pattern.quote(m.group()),m.group().replaceAll("&", "&"));
}
}
実行中にエラーがあります。
04 26 17:02:48,733 FATAL ExporteXml: Illegal group reference
04 26 17:02:48,733 FATAL ExporteXml: java.util.regex.Matcher.appendReplacement(Matcher.java:808)
04 26 17:02:48,733 FATAL ExporteXml: java.util.regex.Matcher.replaceFirst(Matcher.java:955)
04 26 17:02:48,733 FATAL ExporteXml: java.lang.String.replaceFirst(String.java:2119)
私はそれが私の正規表現が、y解決策を見つけることができませんでしただと仮定し...あなたのために事前による おかげで答え
を。私はCDATAタグで置き換えたいので、これを行うことはできません。 'replace!'(内部で 'replaceAll()';を使用しています) '' @!CDATA [ここではテキストを置き換えます]]> ' – MelodyBibi
@Vasan funnily – Thomas