// The following method used to get the single Tag details in ArrayList
ArrayList<String> req_FieldsData=Sax_Parser.getListByTag(output response from server, specific Tag name);
Step 1> Create Sax_Parser.java and paste following code.
// Here input parameter to getListByTag is
msg = Output response from server which is in xml format
tag == Particular xml tag name
public static ArrayList<String> getListByTag(String msg,final String tag){
final ArrayList<String> list=new ArrayList<String>();
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> Here above methods returns the values of Specified Tag in ArrayList.
/////////////////////////////////////////////
This Method returns the Number of Main Tag data in ArrayList<ArrayList<String>>
public static ArrayList<ArrayList<String>> getListofHouseHoldsByTag(String msg,final String tag){
final ArrayList<ArrayList<String>> list_values=new ArrayList<ArrayList<String>>();
try{
SAXParserFactory factory=SAXParserFactory.newInstance();
SAXParser parser=factory.newSAXParser();
parser.parse(new InputSource(new StringReader(msg)),new DefaultHandler(){
ArrayList<String> 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<String>();
}
}
@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