Java XMLInputFactory - 使用.getData()读取数据时截断文本

时间:2010-10-21 14:42:09

标签: java xml

我正在使用XMLInputFactory从xml文件中读取数据(sql查询)。

在某些情况下,数据会被截断。例如:

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'之后截断字符串。这很奇怪!

知道问题是什么,我该如何解决?

1 个答案:

答案 0 :(得分:0)

XMLInputFactory API没有义务一次性为您提供字符串的所有字符。允许传递一系列事件,每个事件都包含一个字符串片段。

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