2012-07-05 44 views
0

解析在Java大型XML字符串我有下面的代碼位,它分析從從數據庫返回的一個XML字符串:使用的XMLReader


的XMLReader xReader = XMLReaderFactory.createXMLReader( );

xReader.setContentHandler(parser);

xReader.parse(new InputSource(new StringReader(theResponseStringFromTheDatabase)));


每當theResponseStringFromTheDatabase過大,解析失敗。有沒有辦法修改代碼,以便解析大字符串?

最良好的祝願, CK

回答

0

我建議你需要獲得一個Reader訪問該列。

InputSource可以採取Reader對象,並且該讀取器應該是能夠遞增地拉動XML(適合SAX讀取所依據的XMLReader

ResultSet.getCharacterStream()可以達到目的的。

+0

嗨,問你的答案。我認爲問題在於整個XML是一個非常大的標籤 – user1503541 2012-07-05 10:02:27

+0

我使用從數據庫中獲取xml字符串的代碼是這樣的: String theResponseStringFromTheDatabase =(String)execute(request.getUrl(),new CallableStatementCallback ){ \t \t \t公共對象doInCallableStatement(ST的CallableStatement)拋出的SQLException,DataAccessException的{ \t \t \t \t st.registerOutParameter(1,java.sql.Types.CLOB); \t \t \t \t在=請求最終字符串。 getUrl(params,null); \t \t \t \t st.setString(2,in); \t \t \t \t st.execute(); \t \t \t \t \t \t \t \t返回st.getString(1); \t \t \t} – user1503541 2012-07-05 10:05:44

+1

我想你需要返回字符流,*不是*字符串 – 2012-07-05 10:40:14