Today encounter a problems when parsing a xml by sax. After analysis, the root cause is special character '&'. If I call this with a xml that has an ampersand in it (e.g. &), the rest of the text within that value on either side of the special character will be cut off. such as <company>B&H Start</company>, the company value is cut to B, &, H Start.
Solution: connect all cut part into one by following code:
public void characters(char buf[], int offset, int len) throws SAXException
{
if(currElement.equalsIgnoreCase("company"))
{
pushToHash(buf, offset, len, prodMap, "company_name");
}
}
private void pushToHash(char buf[], int offset, int len, HashMap hMap, String name)
{
String new_value = new String(buf, offset, len);
String old_value = (String)hMap.get(name);
if (old_value != null)
new_value = old_value + new_value;
hMap.put(name,new_value);
}