2013-10-12 36 views
0

在我的XML文件的時候,我有一個具有特殊字符SAX解析器;錯誤讀取特殊字符

<journal>Universit&auml;t Trier</journal> 

當我運行SAX解析器標籤,我意識到,這將劃分字符串爲2

String 1: Universit 
String 2: &auml;t Trier 

但是我需要將內容作爲整個字符串讀取才能正確存儲在數據庫中。我不能把它分成2個字符串。爲什麼SAX解析器無論如何都這樣做?

以下方法是SAX解析器,做閱讀

public void characters(char ch[], int start, int length) throws SAXException 
{ 
         ... 
} 
+0

看看http://stackoverflow.com/questions/13336140/sax-parsing-and-special-characters和http://stackoverflow.com/questions/8770097/how-to-make-saxparser-ignore-escape代碼 – Dan

+0

謝謝。它現在可以工作 – user2741620

+1

您能否將答案標記爲已接受?你也應該清理你的其他職位,並提供一些跟進。 TIA – lkuty

回答

3

這是不是一個錯誤的一部分。

這只是SAX的設計方式,它需要以這種方式來處理混合內容。

沒有混合內容,它實際上很簡單。

您需要做的是在您自己實現SAX ContentHandler接口時重新組合片段。

通常,這意味着在startElement方法初始化StringBuilderStringBuffer字段,追加到它在characters方法和在endElement方法將其轉換爲一個String