2013-12-13 15 views
5

Chcę utworzyć ciąg <res> w Android, jak poniżej:Jak uciec przed symbolami <i ≤ w xml?

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

Ale ja pokazano błąd „Start Tag nie jest zamknięta”.

Próbowałem umieścić przed sobą symbol \, ale to nie zadziałało, pokazało ten sam błąd.

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

Jak uciec od specjalnych symboli XML?

+0

Dziękuję wszystkim! = D – user2301281

Odpowiedz

11

Będziesz musiał uciec te symbole, jak następuje:

  • < będzie &lt;
  • > będzie &gt;

Znak nie potrzebuje ucieczki .

+0

Czy nie ominęło to w związku z tym znaku "mniejszego lub równego", ≤? – unwind

+0

Nie, ponieważ nie potrzebuje ucieczki, prawda? –

+0

@ peter.petrov Ach, domyślam się, że błędy OP wynikają jedynie z użycia zwykłego <. – unwind

2

Jak powiedział, do < i >, można użyć to:

< &lt; 
> &gt; 

Musisz to zrobić, ponieważ < i > nie są dozwolone w XML, więc musisz je escape. Zrobisz to, wpisując: & + specific code for your character + ;, kiedy pokazujesz ten ciąg, zostanie to uznane za znak specjalny (< lub >).

Chciałeś również znaku smaller or equal (≤), który jest dozwolony w XML, więc po prostu użyj .

Są to znaki, które mają się uciec:

" = &quot; 
' = &apos; 
< = &lt; 
> = &gt; 
& = &amp; 
1

Wykorzystanie Unicode

Dla < użytku \u003c
Dla >\u003e i
Dla \u2264

Uzyskania Unicode dowolny ciąg użyć następującej metody

public static String getUnicode(String input){ 
    String output = ""; 
    for(char c:input.toCharArray()){ 
     output +="\\u" + Integer.toHexString(c|0x10000).substring(1) ; 
    } 
    return output; 
} 
+1

, dlaczego ma +1? \ uxxxx nie jest dla xml – Selvin

+0

@Selvin to jest oznaczony jako android, aw strings.xml to 100% działa PLUS jest to jedyny sposób, aby to zrobić z kilkoma specjalnymi znakami, np. "nie zrywający łącznik" \ uXXXX jest nawet SUGGESTED BY LINT (np. jeśli wpiszesz "...") – Lovis

+1

na pewno jedyny sposób .... ' 'notacja xml to &#XXXX; lub & # xHHHH; – Selvin

0

Tylko moje 2 grosze : guawa 15 intr Oddychane Escapers, szczególnie w takich sytuacjach:

Escaper escaper = XmlEscapers.xmlAttributeEscaper(); 
String result = escaper.escape("<>"); 
System.out.println(result); // &lt;&gt; 
Powiązane problemy