#java #optimization #xml-parsing
#java #оптимизация #xml-синтаксический анализ
Вопрос:
Я новичок в Java, работаю над настольным приложением, тем самым понимая стандарты и концепции Java. У меня есть часть в приложении, где я выполняю синтаксический анализ XML, который также составляет большую часть приложения. Приложение анализирует огромный XML-файл и генерирует некоторые читаемые тексты в зависимости от узлов и значений. На данный момент все в логике синтаксического анализа жестко запрограммировано.
По мере роста приложения и поступления новых требований и запросов на изменение я предпочитаю избавляться от всего жестко закодированного материала и хотел бы сохранить файл конфигурации (например, таблицу поиска). Я хотел бы пересмотреть существующее поведение, которое показано ниже
public String getReadable() {
action = action.getFirstChild();
switch (action.getNodeName()) {
case "Drive": {
String name = XMLUtility.getChildFrom(action, 0).getTextContent();
String model = XMLUtility.getChildFrom(action, 1).getTextContent();
String speed = XMLUtility.getChildFrom(action, 2).getTextContent();
return name "is driving the " model " vehicle at a speed of " speed "mph";
}
case "Stop": {
String model = action.getFirstChild().getTextContent();
return model " is now stopped";
}
}
return "";
}
В моем приложении есть сотни подобных функций в рамках механизма синтаксического анализа. Я хотел бы централизованно поддерживать все жестко закодированные материалы, что является более гибким способом поддержки кода.
Но, поскольку у меня нет никакого предыдущего опыта в Java, я ищу стандартный способ сделать это. Пожалуйста, порекомендуйте понятный подход для улучшения моего кода.
Комментарии:
1. Если ваш ввод представляет собой один XML-файл, а ваш вывод — один текстовый файл, я бы избавился от всего этого и просто попросил Java-код выполнить преобразование XSLT ввода XML с использованием таблицы стилей XSL. Вам больше никогда не придется прикасаться к коду. Просто отредактируйте таблицу стилей. Смотрите docs.oracle.com/javase/tutorial/jaxp/xslt/transformingXML.html