我正在尝试使用 SAX 解析 XML 文档。XML 文档如下所示:
<users>
<row Id="-1" DisplayName="Apple">
<row Id="1" DisplayName="Banana">
<row Id="2" DisplayName="Orange">
</users>
这是我的解析器类的摘录,它负责解析row
元素:
class SAXParser extends DefaultHandler {
static int i = 0;
ArrayList<ArrayList<String>> ar = new ArrayList<ArrayList<String>>();
ArrayList<String> id = new ArrayList<String>();
public void startElement(String uri, String localName,
String qName, Attributes atts) {
if (qName.equals("row")) {
int idx = 0;
id.add(idx, atts.getValue(0));
idx++;
id.add(idx, atts.getValue(3));
ar.add(i, id);
i++;
//idx = 0;
}
}
}
如果我运行程序,我会在属性中得到以下结果ar
,这不是我想要的:
[2,Orange,1,Banana,-1,Apple], [2,Orange,1,Banana,-1,Apple],
[2,Orange,1,Banana,-1,Apple], [2,Orange,1,Banana,-1,Apple]
我想要的是在属性中有Id
,DisplayName
对,如下所示:ar
[-1, Apple], [1, Banana], [2, Orange]
我做错什么了?我怎样才能达到预期的效果?