使用 XmlPullParser 解析 xml 并将结果添加到数组列表中

发布于 2024-12-14 05:34:57 字数 615 浏览 0 评论 0原文

<users type="array">
    <user>
       <id>aOlXzSQQKr3749eJe5cbCb</id>
       <login>name1</login>
       <login_name warning="deprecated">name1</login_name>
       <name>Name 1</name>
   </user>
  <user>
       <id>c8QDleB8Or36QseJe5cbLA</id>
       <login>name2</login>
       <login_name warning="deprecated">name2</login_name>
       <name>Nmae 2</name>
 </user>
</users >

您好,我需要使用 XMLPullParser for 解析上面的 XML,并且我需要数组列表中的名称。我该怎么做,请建议。

谢谢。

<users type="array">
    <user>
       <id>aOlXzSQQKr3749eJe5cbCb</id>
       <login>name1</login>
       <login_name warning="deprecated">name1</login_name>
       <name>Name 1</name>
   </user>
  <user>
       <id>c8QDleB8Or36QseJe5cbLA</id>
       <login>name2</login>
       <login_name warning="deprecated">name2</login_name>
       <name>Nmae 2</name>
 </user>
</users >

Hi, i need to parse above XML using XMLPullParser for , and I need names in a array list. How can I do it, please suggest.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

路还长,别太狂 2024-12-21 05:34:57

也许这样的事情应该有效:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new FileReader(XMLFILEPATH));
int eventType = xpp.getEventType();
String lastTag;
while (eventType != XmlPullParser.END_DOCUMENT)
    {
        UserStruct user;

        /*
         * The name of the tag like: <foo> --> foo
         */
        String tagName = xpp.getName();
        /*
         * Opening tag
         */
        if (eventType == XmlPullParser.START_TAG)
        {
            if (tagName.equals("users"))
            {
                // init your ArrayList
                urArrayList.clear();
            } else if (tagName.equals("user"))
            {
                // new user tag opened
                user = new UserStruct();
            } else if(tagName.equals("id")) {
                lastTag = "id";
            }

            /*
             * Closing tag
             */
        } else if (eventType == XmlPullParser.END_TAG)
        {
            if (tagName.equals("user"))
            {
                urArrayList.add(user);
            }
        } else if (eventType == XmlPullParser.TEXT)
        {
            if (lastTag.equals("id"))
            {
                // fill UserSTruct
                // do so for the other tags as well
            }
        }

        eventType = xpp.next();
    }

Maybe somthing like this should work:

XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
XmlPullParser xpp = factory.newPullParser();
xpp.setInput(new FileReader(XMLFILEPATH));
int eventType = xpp.getEventType();
String lastTag;
while (eventType != XmlPullParser.END_DOCUMENT)
    {
        UserStruct user;

        /*
         * The name of the tag like: <foo> --> foo
         */
        String tagName = xpp.getName();
        /*
         * Opening tag
         */
        if (eventType == XmlPullParser.START_TAG)
        {
            if (tagName.equals("users"))
            {
                // init your ArrayList
                urArrayList.clear();
            } else if (tagName.equals("user"))
            {
                // new user tag opened
                user = new UserStruct();
            } else if(tagName.equals("id")) {
                lastTag = "id";
            }

            /*
             * Closing tag
             */
        } else if (eventType == XmlPullParser.END_TAG)
        {
            if (tagName.equals("user"))
            {
                urArrayList.add(user);
            }
        } else if (eventType == XmlPullParser.TEXT)
        {
            if (lastTag.equals("id"))
            {
                // fill UserSTruct
                // do so for the other tags as well
            }
        }

        eventType = xpp.next();
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文