是否有一种简短的方法来解析Android中的XML字符串

时间:2016-01-19 11:19:15

标签: android xml xml-parsing

我已经探索了很多网站,但未能找到任何关于解析xml的SIMPLE示例或答案。

事实上,网站上充满了例子和答案,但这些内容冗长而复杂。 请回答我一个解析XML String并获取其元素的简单方法。感谢。

2 个答案:

答案 0 :(得分:6)

试试这个,

#define HAVE_INTTYPES_H 1

答案 1 :(得分:0)

您可以使用XMLPullParser轻松解析xml。下面是Handler类 -

public class XmlPullParserHandler {

    String text;
    StringBuilder builder = new StringBuilder();

    public String parse(InputStream is) {

        try {

            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            factory.setNamespaceAware(true);
            XmlPullParser parser = factory.newPullParser();

            parser.setInput(is, null);

            int eventType = parser.getEventType();

            while (eventType != XmlPullParser.END_DOCUMENT) {
                String tagname = parser.getName();
                switch (eventType) {

                    case XmlPullParser.TEXT:
                        text = parser.getText();
                        break;

                    case XmlPullParser.END_TAG:
                        if (tagname.equalsIgnoreCase("YOUR_TAG1")) {
                            builder.append("TAG1 = " + text);
                        } else if (tagname.equalsIgnoreCase("YOUR_TAG2")) {
                            builder.append("\nTAG2 = " + text);
                        }
                        break;

                    default:
                        break;
                }
                eventType = parser.next();
            }

        } catch (IOException e) {
            e.printStackTrace();
        } catch (XmlPullParserException e) {
            e.printStackTrace();
        }

        return builder.toString();
    }


}

要解析从WebService获取的XML响应并读入Inputstream,您可以执行以下操作 -

XmlPullParserHandler parser = new XmlPullParserHandler();
InputStream is = "YOUR XML RESPONSE";
String xmlOutput = parser.parse(is);

xmlOutput是一个包含所有已解析的xml值的字符串。