Android : Not getting data properly with speical character in xml

on Wednesday, September 17, 2014


I am creating application in which I get xml from server which contain special character when I parsed it at android side i get different string of single string which contain special character Here is example of generated xml :



<field>
<option>Didn&apos;t Apply For Card,Do Not Want the Card,No</option>
<validation>NA</validation>
<field_name>self_closed</field_name>
</field>


Here is my code :



String tagname,value = null,t_name;
t_name=table_name;
XmlPullParserFactory xmlPullParserFactory = null;
XmlPullParser xmlPullParser = null;

//System.out.println("In parse UI table name:"+table_name);
result=input_stream;
try {
xmlPullParserFactory = XmlPullParserFactory.newInstance();
xmlPullParserFactory.setNamespaceAware(true);
xmlPullParser = xmlPullParserFactory.newPullParser();
//System.out.println("Load file :"+result);
xmlPullParser.setInput(result,"UTF-8");
//xmlPullParser.defineEntityReplacementText("&#38;","&");
int eventType = xmlPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT)
{
tagname=xmlPullParser.getName();
if(eventType==XmlPullParser.START_TAG)
{

}
else if(eventType==XmlPullParser.TEXT)
{
value=xmlPullParser.getText();
if(value.isEmpty())
{
System.out.println("string is empty");
}
value=conversion.add_special_character(value);
System.out.println("value:"+value);
value=value.trim();

System.out.println(" text tag value :"+value);
}
else if(eventType==XmlPullParser.END_TAG)
{
if(tagname.equals("field"))
{
//System.out.println("field"+field+" table name:"+t_name);
dbController.insert_into_fields(field, t_name);
//database.insert_into_fields(field);
field.clear();
}
if(tagname.equals("field_name"))
{

field.put("field_name", value);

}
if(tagname.equals("type"))
{
field.put("input_type", value);
}
if(tagname.equals("label"))
{
field.put("label", value);
}
if(tagname.equals("option"))
{
//System.out.println("in option tag option:"+value);
field.put("option", value);
}
if(tagname.equals("validation"))
{
//System.out.println("In validation tag:"+value);
field.put("validation", value);
}
// System.out.println("Tag_name :"+tagname);
} // end of else end tag

eventType = xmlPullParser.nextToken();
}// end of while loop
dbController.close_database();
} // end of try
catch (Exception e)
{
// TODO: handle exception
e.printStackTrace();
} // end of catch


when I parse it instead of getting "Didn't apply for card" as whole string I get it as two different string "didn " and t apply for card


0 comments:

Post a Comment