2010-10-21 63 views
1

我使用XMLInputFactory從xml文件讀取數據(sql查詢)。Java XMLInputFactory - 使用.getData()讀取數據時截斷文本

在某些情況下,數據被截斷。例如:

select CASE WHEN count(*) > 0 THEN 'LX1VQMSSRV069 OK' ELSE 'LX1VQMSSRV069 NOK' END from [PIWSLog].[dbo].[log]

讀作(文本後終於被截斷「」):

select CASE WHEN count(*) > 0 THEN 'LX1VQMSSRV069 OK' ELSE 'LX1VQMSSRV069 NOK' END from [PIWSLog].[dbo]

我和幾個字符串測試,似乎問題與焦炭在[].[].[] ..

我使用readind數據:

mySQLquery = event.asCharacters().getData(); 

另一種情況是如果字符串有'\ n'。就像,如果它有兩個'\ n',event.asCharacters().getData();可以正確讀取,但如果它有三個'\ n',它會在第二個'\ n'之後截斷字符串。這很奇怪!

任何想法是什麼問題,我該如何解決它?

回答

0

XMLInputFactory API沒有義務一次性給你所有字符串的字符。允許向您傳遞一系列事件,每個事件都包含字符串的一個片段。

您可能會發現,如果您在包含截斷字符串之後再讀取另一個事件,則會發現字符串的其餘部分(可能在幾次事件之後)。