只是提醒一下我是菜鸟,所以也许我的问题相当愚蠢...
无论如何,我正在使用 SAX 解析 XML 文件,我可以正确地循环遍历这些项目并将它们的内容打印到日志中。我需要的是让这个解析器返回一个多维关联数组,我可以遍历它并随后用于更新 SQLite 数据库......
问题: Android中是否存在这样的事情?我应该改用其他数据类型吗?它是如何完成的?
我将包含一些解析器的代码(endElement 方法进行打印以记录,到目前为止它每个项目都有一个元素,但会改变,因此需要多维):
private boolean in_image = false;
private boolean in_homeimage = false;
StringBuilder sb;
@Override
public void characters(char[] ch, int start, int length)
throws SAXException {
for (int i=start; i<start+length; i++) {
sb.append(ch[i]);
}
//super.characters(ch, start, length);
}
@Override
public void endElement(String uri, String localName, String qName)
throws SAXException {
if( localName.equals("image") && this.in_homeimage ){
this.in_homeimage = false;
Log.i("Extra", "Found homeimage: " + sb);
}
else if( localName.equals("image") ){
this.in_image = false;
Log.i("Extra", "Found image: " + sb);
}
//super.endElement(uri, localName, qName);
}
@Override
public void startElement(String uri, String localName, String qName,
Attributes attributes) throws SAXException {
sb = new StringBuilder();
if( localName.equals("image") && attributes.getValue("name") == "home" )
this.in_homeimage = true;
else if( localName.equals("image") )
this.in_image = true;
//super.startElement(uri, localName, qName, attributes);
}
提前致谢