Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

SAXParser Problem

 
Jayesh Netravali
Greenhorn
Posts: 12
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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>

I parse this XML using the javax.xml.parsers.SAXParser. My parser class extends the DefaultHandler. I have to display this info in a JTable. Hence I make a Vector of Vectors by reading the String by overriding the characters() method of the DefaultHandler

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.
 
Bear Bibeault
Author and ninkuma
Marshal
Pie
Posts: 64629
86
IntelliJ IDE Java jQuery Mac Mac OS X
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
That is just the way SAX works. You are never guarenteed that all the text will be contained in one call to the handler. Your handler must be able to account for this.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic