SAX パーサーを使用して xml ファイルを解析し、データをパーサーの endDocument メソッド内のいくつかの arraylists-hashmaps に格納します。解析が終了した後、すべての参照がなくなり、メインメソッドからそれらにアクセスしようとすると、arraylist-hashmap size() がゼロになるようです。つまり、解析後にデータを保存しますが、サックス解析中にのみ印刷できます。解析が完了した後にそれらを再利用するためにそれらを保存するにはどうすればよいでしょうか? 必要な情報を含むオブジェクトのリストを作成しようとしましたが、うまくいきませんでした。
ハンドラー コード:
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;}