1

我正在用 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>

我想在我的布局中的列表中插入选项我该如何做同样的事情请告诉我。我希望它只解析第一个块的数据,然后它会通过单击按钮来请求触发事件。

提前谢谢。

4

2 回答 2

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按钮)。请记住使用对象的相同实例来获取数据。

于 2012-05-24T06:35:49.377 回答
0

Java 平台在相当长的一段时间内一直支持多种不同的 XML 处理方式,并且大多数 Java 的 XML 相关 API 在 Android 上得到完全支持。例如,Java 的 XML 简单 API (SAX) 和文档对象模型 (DOM) 都可以在 Android 上使用。这两种 API 多年来一直是 Java 技术的一部分。较新的 XML 流 API (StAX) 在 Android(更多)中不可用。

这是如何在 android 中解析 xml的最佳示例,就像您的问题一样。这是 Android XML SAX Parser Example .Parsing XML in Android (DOM method) is antoher best example for Dom Methodhttp://www.androidhive.info /2011/11/android-xml-parsing-tutorial/。

XmlResourceParser 是为 XML 资源返回的 XML 解析接口。这是一个标准的 XmlPullParser 接口,以及扩展的 Attribute Set 接口和此接口上的附加 close() 方法,用于客户端指示何时完成读取资源(更多)。

不要忘记看到这个。Android 中使用的解析器

于 2012-05-24T06:26:25.480 回答