我正在使用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>
我想在我的布局列表中插入选项,我该怎么做同样的告诉。我希望它只是解析第一个块的数据,然后它会通过点击按钮来询问触发事件。
提前完成。
答案 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