2013-12-13 8 views
5

Ich möchte einen String <res> in Android erstellen, wie unten:Wie kann man die Symbole <und ≤ in xml ausschließen?

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

Aber ich den Fehler "Tag Start ist nicht geschlossen" gezeigt.

Ich habe versucht, ein \ Symbol vor, aber es funktioniert nicht, es hat den gleichen Fehler gezeigt.

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

Wie kann man den speziellen XML-Symbolen entkommen?

+0

Danke für alle !! = D – user2301281

Antwort

11

Sie werden diese Symbole wie folgt entkommen müssen:

  • < wird &lt;
  • > wird &gt;

Das Zeichen dafür sein, braucht nicht entkommen .

+0

Verpasst dies nicht den Punkt, an dem das Zeichen "weniger als oder gleich" verwendet wird, ≤? – unwind

+0

Nein, weil es nicht entkommen muss, oder? –

+0

@ peter.petrov Ah, ich schätze, die OP-Fehler sind nur von der Verwendung von regulären <. – unwind

2

verwenden:

< &lt; 
> &gt; 
2

Wie gesagt umgewandelt werden, für die < und >, können Sie dies:

< &lt; 
> &gt; 

Sie müssen dies tun, weil die < und > in XML nicht zulässig sind, Sie müssen also escape ihnen. Sie tun das, indem Sie eingeben: & + specific code for your character + ;, wenn Sie diese Zeichenfolge anzeigen, wird dies als das Sonderzeichen erkannt (< oder >).

Sie wollten auch das Zeichen smaller or equal (≤), das in XML zulässig ist, also verwenden Sie einfach .

Dies sind die Zeichen, die Sie fliehen müssen:

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

Verwenden Unicode

Für < Verwendung \u003c
Für >\u003e und
Für \u2264

Für immer Unicode jeder String verwenden Sie die folgende Methode

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

warum es +1 hat? \ uxxxx ist nicht für xml – Selvin

+0

@Selvin das ist getaggt android, und in strings.xml es funktioniert 100% PLUS es ist die einzige Möglichkeit, es mit einigen speziellen Zeichen zu tun, wie "non breaking-hyphen" \ uXXXX ist sogar von LINT EMPFOHLEN (zB wenn Sie "... ") – Lovis

+1

sicher den einzigen Weg .... ' Selvin

0

Just my 2 cents : Guave 15 Intr speziell für diese Situationen:

Escaper escaper = XmlEscapers.xmlAttributeEscaper(); 
String result = escaper.escape("<>"); 
System.out.println(result); // &lt;&gt; 
Verwandte Themen