2010-10-21 69 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没有义务一次性给你所有字符串的字符。允许向您传递一系列事件,每个事件都包含字符串的一个片段。

您可能会发现,如果您在包含截断字符串之后再读取另一个事件,则会发现字符串的其余部分(可能在几次事件之后)。