簡體   English   中英

如何轉義 xml 中的 < 和 ≤ 符號?

[英]How to escape the < and ≤ symbols in xml?

我想在 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 符號?

您必須按如下方式轉義這些符號:

  • <將是&lt;
  • >將是&gt;

符號不需要轉義。

您必須為 XML 轉義這些符號。

我需要在 XML 文檔中轉義哪些字符?

如上所述,對於<> ,你可以使用這個:

<   &lt;
>   &gt;

您需要這樣做,因為<>在 XML 中是不允許的,所以您需要對它們進行escape 你可以通過輸入: & + specific code for your character + ; , 當您顯示此字符串時,這將被識別為特殊字符( <> )。

您還需要smaller or equal等號 (≤),這是 XML 中允許的,因此只需使用

這些是您必須轉義的字符:

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

使用這個:

<   &lt;
>   &gt;

對特殊字符使用 Unicode 序列。

你可以在這里找到其中的一些: http : //jrgraphix.net/r/Unicode/2200-22FF

像這樣使用它:

\u2264

將轉換為

使用

https://stackoverflow.com/a/4301267/2740014

轉義字符串,然后將它們放入您的 xml 中。

StringEscapeUtils.escapeXml(stringHere);

是我認為需要的東西。

使用 Unicode

對於<使用\<
對於> \>
對於 \≤

要獲取任何字符串的 unicode,請使用以下方法

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

Just my 2 cents: guava 15 引入了 Escapers,特別是對於這種情況:

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

暫無
暫無

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

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