Лучший способ разобрать xml

я разбирал XML вот так годами, и я должен признать, что когда количество различных элементов становится больше, я нахожу это немного скучным и утомительным, вот что я имею в виду, образец фиктивного XML:



    2003/07/04
    123
    Acme Alpha
    
         987
        Coupler
        5
    
    
        654
        Connector
        3
    
    
        579
        Clasp
        1
    

Это актуальная часть (с помощью саксофона): I '

public class SaxParser extends DefaultHandler {

    boolean isItem = false;
    boolean isOrder = false;
    boolean isDate = false;
    boolean isCustomerId = false;
    private Order order;
    private Item item;

        @Override
    public void startElement(String namespaceURI, String localName, String qName, Attributes atts) {
        if (localName.equalsIgnoreCase("ORDER")) {
            order = new Order();
        }

        if (localName.equalsIgnoreCase("DATE")) {
            isDate = true;
        }

        if (localName.equalsIgnoreCase("CUSTOMERID")) {
            isCustomerId = true;
        }

        if (localName.equalsIgnoreCase("ITEM")) {
            isItem = true;
        }
    }

    public void characters(char ch[], int start, int length) throws SAXException {

        if (isDate){
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
            String value = new String(ch, start, length);
            try {
                order.setDate(formatter.parse(value));
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }

        if(isCustomerId){
            order.setCustomerId(Integer.valueOf(new String(ch, start, length)));
        }

        if (isItem) {
            item = new Item();
            isItem = false;
        }



    }

}

Интересно, есть ли способ избавиться от этих отвратительных логических выражений, которые продолжают расти с количеством элементов. Должен быть лучший способ разобрать этот относительно простой XML. Просто глядя на строки кода, необходимые для выполнения этой задачи, выглядит некрасиво.

В настоящее время я 'я использую парсер SAX, но яЯ открыт для любых других предложений (кроме DOM, я могуЯ не могу себе позволить парсеры памяти, у меня есть огромные XML-файлы).

Ответы на вопрос(9)

Ваш ответ на вопрос