2013-06-28 63 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需要的昂贵的内存分析。