我使用 SAX 解析器来解析 xml 文件并将我的数据存储到解析器的 endDocument 方法中的一些 arraylists-hashmaps 中。似乎在解析结束后我的所有引用都消失了,当我尝试从我的主要方法访问它们时,我得到零 arraylist-hashmap size()。换句话说,我在解析后保存数据,但只能在 sax 解析期间打印出来。解析完成后如何保存它们以便重新使用它们?我尝试创建一个包含我需要的信息的对象列表,但它没有用。
处理程序代码:
public class MyHandler extends DefaultHandler {
private List<String> Rules = new ArrayList<String>();
public MyHandler() {acc = new StringBuilder();}
public void startDocument(){
String startDocumentString="Parsing started ----- Discovered Rules :";
System.out.println(startDocumentString);}
public void endDocument(){
String endDocumentString="\n \nParsing ended ------";
System.out.println(endDocumentString);
for(int i=0 ; i< rulesNumber ; i++){
setRules(Result[(0+(3*i))]);
System.out.println("Assosiative Rule " + (i+1) +": "+ Result[(0+(3*i))]);}
public void startElement(String nameSpaceURI, String localName, String qName, Attributes atts) {
if(qName.equals("AssociationRule")) {
setRulesNumber();}
public void endElement(String nameSpaceURI,String localName, String qName) {
(acc.toString()).trim();
System.out.print(acc.toString());
Results.add(acc.toString());
acc.setLength(0);
unsetDecision();
}
public void characters (char[] ch, int start , int length) {
if(decision)
acc.append(ch, start, length);
}
public void setRules(String s){Rules.add(s);}
public List<String> getRules(){return Rules;}