0

® (HTML 番号 ®) などの多くの特殊記号と ã (HTML 番号 ã) などの HTML 名を含む XML があります。

Java を使用して、これらの HTML 記号と HTML 名を対応する HTML 番号に置き換えようとしています。このために、最初に XML ファイルを文字列に変換し、次に replaceAll メソッドを次のように使用しました。

File fn = new File("myxmlfile.xml");
String content = FileUtils.readFileToString(fn);
content = content.replaceAll("®", "&\#174");
FileUtils.writeStringToFile(fn, content);

しかし、これは機能していません。

どなたかやり方を教えてください。

ありがとう !!!

4

3 に答える 3

2

replaceAllメソッドのシグネチャは次のとおりです。

public String replaceAll(String regex, String replacement)

最初のパラメーターが有効な正規表現であることに注意する必要があります。Java Patternクラスは、Java正規表現で使用される構造を記述します。

Patternクラスの説明にあるものに基づいて、何が問題になっているのかわかりません。

content = content.replaceAll("®", "&\#174");

あなたは試すことができます:

content = content.replaceAll("\\p(®)", "&\#174");

それがうまくいくかどうかを確認してください。

于 2011-05-20T12:54:41.303 に答える
1

\# は有効なエスケープ シーケンスではないと思います。ところで、「®」の何が問題なのですか?

于 2011-05-20T13:19:16.063 に答える
0

HTML 番号が必要な場合は、最初に XML のエスケープを試してください。

Apache Commons Lang の EscapeUtils を使用します。

Java はそれを処理するのに問題があるかもしれないので、まず Java をエスケープし、その後で XML または HTML をエスケープすることを好みます。

    String escapedStr= StringEscapeUtils.escapeJava(yourString);
    escapedStr= StringEscapeUtils.escapeXML(yourString);
    escapedStr= StringEscapeUtils.escapeHTML(yourString);
于 2012-03-28T08:53:38.847 に答える