我想在android中创建一个字符串<res>
,如下所示:
<string name="bmi0">0: BMI≤18.5</string>
<string name="bmi1">1: 18.5<BMI≤24</string>
<string name="bmi2">2: 24<BMI≤27</string>
但我显示“标签开始未关闭”的错误。
我尝试将\
符号放在前面,但它不起作用,它显示了相同的错误。
<string name="bmi0">0: BMI\≤18.5</string>
<string name="bmi1">1: 18.5<BMI\≤24</string>
<string name="bmi2">2: 24<BMI\≤27</string>
如何转义特殊的XML符号?
答案 0 :(得分:12)
您必须按以下方式转义这些符号:
<
将为<
>
将为>
≤
符号不需要转义。
答案 1 :(得分:3)
您必须为XML转义这些符号。
答案 2 :(得分:2)
使用此:
< <
> >
答案 3 :(得分:2)
如上所述,对于<
和>
,您可以使用:
< <
> >
您需要执行此操作,因为XML中不允许<
和>
,因此您需要escape
它们。您可以通过键入:&
+ specific code for your character
+ ;
来执行此操作,当您显示此字符串时,这将被识别为特殊字符(<
或{{1} })。
您还需要>
符号(≤),这在XML中是允许的,所以只需使用smaller or equal
。
这些是你必须逃脱的角色:
≤
答案 4 :(得分:1)
答案 5 :(得分:1)
使用
https://stackoverflow.com/a/4301267/2740014
转义字符串,然后将它们放入xml中。
StringEscapeUtils.escapeXml(stringHere);
我认为是需要的东西。
答案 6 :(得分:1)
使用Unicode
<
使用\u003c
对于>
\u003e
和
对于≤
\u2264
要获取任何String的unicode,请使用以下方法
public static String getUnicode(String input){
String output = "";
for(char c:input.toCharArray()){
output +="\\u" + Integer.toHexString(c|0x10000).substring(1) ;
}
return output;
}
答案 7 :(得分:1)
仅仅是我的2美分:番石榴15引入了Escapers,特别是在这种情况下:
Escaper escaper = XmlEscapers.xmlAttributeEscaper();
String result = escaper.escape("<>");
System.out.println(result); // <>