【问题标题】:Android parse sub XML tagAndroid 解析子 XML 标签
【发布时间】:2013-04-06 19:07:58
【问题描述】:
<?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的this example解析“id、name、cost和discription”就可以了。

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

【问题讨论】:

    标签: android xml-parsing


    【解决方案1】:

    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.extract 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

    【讨论】:

      【解决方案2】:

      只需通过 DOM 解析器。您可以通过其名称获取特定节点。实际上它的工作原理与其他节点相同,您只需为具有子节点authorauthorurllist 元素获取NodeList

      看看这些

      Tutorial 1 Tutorial 2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多