簡體   English   中英

首先轉義=用於屬性文件的Map(ATG / Java)

[英]Escape first = for a properties file's Map (ATG/Java)

你們(ATG / Java)遇到過逃避屬性文件Map的第一個'='嗎?

我的屬性文件中有一張地圖,如下所示:

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並轉換其值。

但是想知道是否有默認的方法來逃避優先權。

謝謝,

為什么不嘗試一下-反過來呢? 我在=之前取了帶有反斜杠的鍵。 這樣就變成\\\\

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

解釋是=和反斜杠本身作為鍵的一部分必須被轉義。 (也:需要轉義。)所以再加上兩個反斜杠。

\=與等號完全相同,並且無效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM