2012-07-05 61 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