【问题标题】:parse XML block by block in android在android中逐块解析XML
【发布时间】:2012-05-24 06:05:24
【问题描述】:

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

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

提前感谢。

【问题讨论】:

标签: android xml dom android-xml


【解决方案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)。请记住使用对象的相同实例来获取数据。

【讨论】:

    【解决方案2】:

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

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

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

    别忘了看看这个。 Parsers used in Android

    【讨论】:

      猜你喜欢
      • 2014-09-14
      • 2015-07-18
      • 1970-01-01
      • 2014-10-01
      • 1970-01-01
      • 2019-09-23
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多