Hi, I have an odd problem. I am using a SAX parser to parse an XML file which has a root and a number of repeating elements in the root. For eg. It is like representing a Database table in the XML format. The format is <table-name> <row> <column1>value1</column1> <column2>value2</column2>... </row> <row> ..... </row> </table-name>
The problem is after some 90-95 <row> tags the characters() method returns me the value of the text content for a tag in two parts. i.e for eg for the 91st row if the tag is <column1>This is-a test message</column1> it returns me 'This is' and '-a test message' as two Strings. Thus one String is stored in my vector in two parts, which screws up my table display.
If I delete one row from the xml file then the problem shifts to the next row in the file. I dont know if it some problem with the capacity of a vector?
Any pointers to the solun of the above problem would be helpful.
Thanks in advance, Jayesh.
Joined: Aug 08, 2003
Since you overrode the 'characters' method, you should know what values are being passed to. Is it being called twice for the String in question? [ August 23, 2004: Message edited by: Rovas Kram ]
Author and all-around good cowpoke
Joined: Mar 22, 2000
Rovas is exactly right. The characters method may be called ANY NUMBER of times for a given text field. You must provide for accumulating characters (say in a StringBuffer) until the endElement event. The reason is that the parser reads in buffer-loads so if your text field is not complete in a buffer-load, the call to characters will have only the characters in that buffer. Bill