Friday, 12 September 2014

example for parsing methods using Saxparsers

Step1 : for getting single tag value use below code:


public static ArrayList getListByTag(String msg,final String tag){
 
final ArrayList list=new ArrayList();
try{
list.clear();  
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
// parser.parse(is, dh)//
parser.parse(new InputSource(new StringReader(msg)),new DefaultHandler(){
boolean tag_value=false; 
@Override
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
if(qName.equalsIgnoreCase(tag)){
tag_value=true; 
}
 
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
super.characters(ch, start, length);
if(tag_value){
list.add(new String(ch,start,length));  
}
}   
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
super.endElement(uri, localName, qName);
if(qName.equalsIgnoreCase(tag)){
tag_value=false; 
}
});  
}catch (Exception e) {
e.printStackTrace(); 
}
return list; 
}  






Step 2 : for getting list of tag values use below code:



public static ArrayList> getListofHouseHoldsByTag(String msg , final String tag){
final ArrayList>  list_values=new ArrayList>();  
 
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();

 
parser.parse(new InputSource(new StringReader(msg)),new DefaultHandler(){

ArrayList list;
boolean tag_value=false; 
@Override
public void startElement(String uri, String localName,
String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
if(qName.equalsIgnoreCase(tag)){
tag_value=true; 
list=new ArrayList();
}  
 
}
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
super.characters(ch, start, length);
if(tag_value){
list.add(new String(ch,start,length));  
}   
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
super.endElement(uri, localName, qName);
if(qName.equalsIgnoreCase(tag)){
tag_value=false;  
list_values.add(list);   
}
}
});  
}catch (Exception e) {
e.printStackTrace(); 
}
return list_values;   


No comments:

Post a Comment