2011-02-24 101 views
0

我有格式的XML:有沒有辦法讓SAXParser在解析時忽略某些元素的內容?

... 
<To>"Paul McCartney" <[email protected]></To> 
<From>"John Lennon" <[email protected]></From> 
... 

的SAXParser的儘快,因爲它得到的電子郵件地址會拋出異常。它認爲<[email protected]>是一個XML元素,只要遇到@符號就會拋出異常。無論如何要忽略Java SAX中某些元素的內容?

+1

可能有解決方法,但基本問題是數據是**無效XML **!誰在製作它必須修復它! –

+1

您沒有XML ... –

回答

5

如果您使用的是DefaultHandler,您可以嘗試覆蓋org.xml.sax.helpers.DefaultHandler.error()以及類似的方法?另見的org.xml.sax.ErrorHandler的JavaDoc:

http://download.oracle.com/javase/6/docs/api/org/xml/sax/ErrorHandler.html

但在任何方式,XML是無效的。它不應該那樣。你可以它進行預處理和&gt;通過&lt;>更換<或只是整個包住<To/><From/>內容爲<![CDATA[ ]]>塊...

+0

嘗試覆蓋錯誤處理程序...這沒有幫助。但我認爲你的CDATA建議很好。實際上,我在這裏談論ActiveSync服務器......他們發回元素中的所有數據,以及它包含的內容,我可以使用CDATA進行換行。謝謝@Lukas :) – themoondothshine

+0

不客氣。 CDATA無疑是最強大的解決方案 –

1

這不是XML使XML解析器不會解析它,如果你能得到格式改變了,否則你最好打賭它會推出你自己的特定於這種格式的解析器。

相關問題