Как разобрать строку xml с xmlpullparser android
Я хочу проанализировать строку XML и отобразить ее в EditText, но не могу, я не понимаю, в чем может быть проблема, пожалуйста, помогите немного, мой код:
private String xmlc ="<game><cel>5</cel><val>2</val></game>";
private CharSequence readXML(String xmlc2) throws XmlPullParserException {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
String results = "";
String celda = "";
String valor = "";
xpp.setInput(new StringReader (xmlc2));
int eventType = xpp.getEventType();
String tagName = xpp.getName();
try {
while (eventType != XmlPullParser.END_DOCUMENT) {
if(tagName.equalsIgnoreCase("cell")){
celda = xpp.nextText();
} else if(tagName.equalsIgnoreCase("val")){
valor = xpp.nextText();
}
xpp.nextTag();
}
} catch (Exception e) {
Toast.makeText(this, "error!", Toast.LENGTH_LONG).show();
}
return celda;
}
Спасибо за предложение, теперь я могу отправить строку xml в качестве параметра, и я могу проанализировать, но я не знаю, как сохранить 2 найденных значения и показать каждое значение в другом EditText?
private EditText et02;
private EditText et03;
private String xmlc = "<game><cel>5</cel><val>2</val></game>";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
EditText et02 = (EditText)findViewById(R.id.et02);
EditText et03 = (EditText)findViewById(R.id.et03);
TextView myXmlContent = (TextView)findViewById(R.id.xml_tv);
String stringXmlContent;
stringXmlContent = getAllXML();
myXmlContent.setText(stringXmlContent);
}
public String getAllXML(){
Activity activity = this;
String str = "";
//For file source
//Resources res = activity.getResources();
//XmlResourceParser xpp = res.getXml(R.xml.test);
try {
//For String source
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(true);
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new StringReader(xmlc));
xpp.next();
int eventType = xpp.getEventType();
while (xpp.getEventType()!=XmlPullParser.END_DOCUMENT) {
if (xpp.getEventType()==XmlPullParser.START_TAG) {
if (xpp.getName().equals("cel")) {
str += "\ncell : "+xpp.nextText();
}
if (xpp.getName().equals("val")) {
str += "\nval : "+xpp.nextText();
}
}
xpp.next();
}
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return str;
}