在android中逐块解析XML

时间:2012-05-24 06:05:25

标签: android xml dom android-xml

我正在使用DOM解析XML我有一些数据标签,如:

<data>
    <option>abc</option>
    <option>ijk</option>
    <option>fgh</option>
    <option>njk</option>
    <option>klj</option>
    <option>opi</option>
</data>
<data>
    <option>abc</option>
    <option>ijk</option>
    <option>fgh</option>
    <option>njk</option>
    <option>klj</option>
    <option>opi</option>
</data>

我想在我的布局列表中插入选项,我该怎么做同样的告诉。我希望它只是解析第一个块的数据,然后它会通过点击按钮来询问触发事件。

提前完成。

2 个答案:

答案 0 :(得分:1)

由于您要解析部分XML数据,最好使用XmlPullParser

你需要有一个方法,一次读取一个块,保持对解析器的引用作为成员变量。

public class PartialXmlParser{
    private XmlPullParser xpp;

    public PartialXmlParser(String xml){
         XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
         factory.setNamespaceAware(true);
         xpp = factory.newPullParser();

         xpp.setInput( new StringReader (xml ) );
    }

    public List<String> getData(){
        List<String> retValue = new List<String>();
        //Logic to read one block of data and add to retValue
        //
        return retValue;

    }
}

并在回调事件中调用getData方法(如按钮的OnClick)。请记住使用相同的对象实例来获取数据。

答案 1 :(得分:0)

Java平台已经支持许多不同的方式来使用XML很长一段时间了,并且大多数Java的XML相关API在Android上完全受支持。例如,Java的Simple API for XML(SAX)和文档对象模型(DOM)都可以在Android上使用。这两种API多年来一直是Java技术的一部分。新的Streaming API for XML(StAX)在Android(More)中不可用。

这是how to parsing xml in android的最佳示例,就像你的问题一样。 这是Android XML SAX Parser Example。Android中的解析XML(DOM方法)是Dom Methodhttp://www.androidhive.info/2011/11/android-xml-parsing-tutorial/的最佳示例。

XmlResourceParser是为XML资源返回的XML解析接口。这是一个标准的XmlPullParser接口,以及一个扩展的属性集接口和一个额外的close()方法,用于客户端指示何时读取资源(More)。

并且不要忘记看到这一点。 Parsers used in Android