2013-06-28 62 views

回答

0

正如我所瞭解的,您希望根據SAX剛剛閱讀的內容執行不同的方法。我想不出有辦法做到這一點。在我看來,您正在使用if-else/switch語句在Handler方法的startElement,卡住的endElement,人物等

如果你發現你的if-else語句太複雜,你可以從提取,如果代碼條款以不同的方法,例如:

@Override 
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { 
    if (ELEMENT1.equalsIgnoreCase(qName)) { 
     createElement1(); 
    } else if (ELEMENT2.equalsIgnoreCase(qName) { 
     createElement2(); 
    } else { 
     createDefaultElement(); 
    } 
} 
0

檢查XMLDog

你可以寫Expressions然後評估他們直列後避免了痛苦的系列if tests。額外的好處是它使用流分析器(SAX),並避免了XPath需要的昂貴的內存分析。