在聊天專案中發現內容裡面只要有< 和&這兩個字元,就顯示不了,後來查資料發現這是xml中的非法字元在作怪,解決的辦法是在編碼之前,也就是把文字資訊轉化成xml格式之前先用實體引用替換了,message = [message stringbyreplacingoccurrencesofstring:@"&" withstring:@"&"];
message = [message stringbyreplacingoccurrencesofstring:@"<" withstring:@"<"];;//實體引用;之後在xml解析的時候,在**方法- (nsdata *) parser:(nsxmlparser *)parser
resolveexternalentityname:(nsstring *)entityname
systemid:(nsstring *)systemid
return [entitytable objectforkey:entityname];
}裡面,把實體引用的字元再替換回來,就ok了!
在 xml 中,一些字元擁有特殊的意義。
如果你把字元 "<" 放在 xml 元素中,會發生錯誤,這是因為解析器會把它當作新元素的開始。
這樣會產生 xml 錯誤:
if salary < 1000 then為了避免這個錯誤,請用實體引用來代替 "<" 字元:
if salary<
1000 then
在 xml 中,有 5 個預定義的實體引用:
<
<
小於》>大於&
&和號''
單引號""引號
注釋:在 xml 中,只有字元 "<" 和 "&" 確實是非法的。大於號是合法的,但是用實體引用來代替它是乙個好習慣。
XML 實體引用
xml 有 5 個預定的實體引用?xml 文件裡,除了表示乙個標記的開始之外,不允許有小於號 因為小於號 被 xml 解析器解總是被解釋為乙個標記的開始。if age 10 上面的寫法會導致 xml 文件的錯誤。為避免這樣的錯誤,而你又需要在 xml 文件內容裡使用小於號,你可以使用小於號的實體引用...
XML字元和實體引用
字元和實體引用 字元和實體引用可以向xml文件中引入其他資訊,而不需要直接在文件中輸入它們。字元和實體引用通常用於以下情況。1 字元不能直接出現在文件中,因為它們會被解釋為標記。2 由於輸入裝置的限制,字元不能直接輸入到文件中。3 由於單位元組字元的限制,字元不能可靠地經過處理程式。4 相同的字串或...
XML中實體的概念
為文件建立文字巨集 許多開發人員在 xhtml 中使用實體代替特殊字元,但是也可以在 xml 中定義實體來簡化創作或者引用外部文件的內容。在我們建立文件型別定義 document type definition,dtd 並試圖減小它的表面複雜性以便適合人類閱讀時,實體也能派上用場。本文將全面介紹 x...