0
<?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 文件时遇到了问题。使用这个android的例子来解析“id、name、cost和discription”对我来说很好。

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

4

2 回答 2

0

只需通过DOM Parser即可。您可以通过其名称获取特定节点。实际上它的工作方式与其他节点相同,您只需获取具有子节点的NodeListfor元素和.listauthorauthorurl

看看这些

教程 1 教程 2

于 2013-03-04T06:13:50.283 回答
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.提取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();
    }

从这里参考

于 2013-03-04T06:32:15.253 回答