Android解析子XML标记

时间:2013-03-04 06:10:18

标签: android xml-parsing

<?xml version="1.0" encoding="UTF-8"?>
<feed>
    <entry>
        <id>1</id>
        <name>Margherita</name>
        <cost>155</cost>
        <description>Single cheese topping</description>
        <list>
            <author>PPShein</author>
            <authorurl>http://www.ppshein.net</authorurl>
        </list>
    </entry>
    <entry>
        <id>2</id>
        <name>Double Cheese Margherita</name>
        <cost>225</cost>
        <description>Loaded with Extra Cheese</description>
        <list>
        <author>Mike</author>
        <authorurl>http://www.mike.net</authorurl>
    </list>        
    </entry>
</feed>

我在解析上面的XML文件时遇到了问题。我可以通过使用this example的android来解析“id,name,cost和discription”。

但是对于<author><authorurl>标记,上述链接的示例无法完成我的任务。请帮我解析如何解析这个XML文件的子标记。

2 个答案:

答案 0 :(得分:0)

只需浏览 DOM Parser 即可。您可以通过其名称获取特定节点。实际上它的工作方式与其他节点相同,您必须获得具有子节点NodeListlist的{​​{1}}元素的author

看看这些

<强> Tutorial 1 Tutorial 2

答案 1 :(得分:0)

1.我已经解析了这个xml我认为这个可以帮助你

<?xml version="1.0" encoding="utf-8"?>
<rootelement1>
    <subelement> Hello XML Sub-Element 1</subelement>
    <subelement> Hello XML Sub-Element 2 
        <subsubelement>
          Sub Sub Element 
         </subsubelement>
   </subelement>
</rootelement1>
  

2.extratct xml在这里

private String getEventsFromAnXML(Activity activity)
            throws XmlPullParserException, IOException {
        StringBuffer stringBuffer = new StringBuffer();
        Resources res = activity.getResources();
        XmlResourceParser xpp = res.getXml(R.xml.parsxml);
        xpp.next();
        int eventType = xpp.getEventType();
        while (eventType != XmlPullParser.END_DOCUMENT) {
            if (eventType == XmlPullParser.START_DOCUMENT) {
                stringBuffer.append("--- Start XML ---");

            } else if (eventType == XmlPullParser.START_TAG) {
                stringBuffer.append("\nSTART_TAG: " + xpp.getName());
                System.out.println("\n--- Start XML ---" + xpp.getName());
            } else if (eventType == XmlPullParser.END_TAG) {
                stringBuffer.append("\nEND_TAG: " + xpp.getName());
            } else if (eventType == XmlPullParser.TEXT) {
                stringBuffer.append("\nTEXT: " + xpp.getText());
            }
            eventType = xpp.next();
        }
        stringBuffer.append("\n--- End XML ---");
        System.out.println("\n--- End XML ---");
        return stringBuffer.toString();
    }

Reference from here