繁体   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