[英]Parsing XML file with SAX parser having too many tags
我有一個帶有大約60到70個標簽的xml文件。 在調用SAX Parsers startElement,endElement,的回調方法時,如果過多使用字符,將使代碼非常痛苦。是否還有其他方法可以使代碼更具可讀性?
還有其他方法,稱為DOM
, StAx
等。選擇一種靈活的方法。 但是,SAX在內存和時間上效率更高。 有關詳細信息,請參見: http : //docs.oracle.com/javase/tutorial/jaxp/index.html
據我了解,您想根據SAX剛讀的內容執行不同的方法。 我想不出辦法。 在我看來,您在Handler
方法的startElement,endElement,characters等中使用if-else/switch
語句感到困惑。
如果您發現if-else
語句過於復雜,則可以從if子句中提取代碼以分離方法,例如:
@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();
}
}
檢查XMLDog
您可以編寫Expressions
,然后內聯評估它們,避免痛苦的if tests
系列。 另一個好處是它使用了流解析器(SAX),並且避免了XPath
所需的昂貴的內存中解析。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.