2017-07-12 3 views
0

プロパティファイルのマップでは、最初にエスケープする人はいましたか?プロパティファイルのマップ(ATG/Java)の最初のエスケープ

私は私のプロパティ内の1つのマップは、このようなファイルしている:ここで

elementToPropertyMap=\ 
     ./Name/Value[@locale\='en']=displayName 

、私は同じ、すなわち

Key = ./Name/Value[@locale\='en'] and value = displayName 

を無視すべき最初の何をしたい私は、これらのバリエーションを試してみましたが、取得できませんでした必要な出力。

1 ./Name/Value[@locale\='en']=displayName   ./Name/Value[@locale\ 
2 ./Name/Value[@locale\\='en']=displayName   ./Name/Value[@locale\\ 
3 ./Name/Value[@locale//='en']=displayName   ./Name/Value[@locale// 
4 ./Name/Value[@locale\=\'en']=displayName   ./Name/Value[@locale\ 
5 ./Name/Value[@locale\\=\\'en']=displayName  ./Name/Value[@locale\\ 
6 ./Name/Value[@locale/\=/\'en']=displayName  ./Name/Value[@locale/\ 
7 ./Name/Value[@locale\u003d'en']=displayName  ./Name/Value[@locale\u003d'en'] 

はい、私たちはあなたが{0}と=」「」で置き換えることができたり、その値をプロパティにUnicodeを使用して変換します。

をしかし知りたいと思ったが最初に等しいを脱出するがデフォルトの方法です。

おかげで、

+0

達成したいことは何ですか? –

+0

これはATG関連のコードです。私はATGに最初に逃げ出す方法があることを知りたい= –

答えて

1

なぜそれを試してみません - ?他の方法で回避を は私が=前にバックスラッシュを持っている鍵を取ったことがなるように。 210。

Properties properties = new Properties(); 
properties.setProperty("./Name/Value[@locale\\='en']", "displayName"); 
properties.setProperty("./Name/Value[@locale='en']", "displayName"); 
properties.store(Files.newOutputStream(Paths.get("test.properties")), "Test"); 

はtest.propertiesを与える:

#Test 
#Wed Jul 12 14:48:19 CEST 2017 
./Name/Value[@locale\\\='en']=displayName 
./Name/Value[@locale\='en']=displayName 

説明は=とキーの一部として、バックスラッシュ自体は、エスケープしなければならないということです。 (また、:はエスケープする必要があります)。したがって、2つの追加のバックスラッシュ。

\u003dは、等号とまったく同じで、効果がありません。

関連する問題