Для одного из наших приложений я написал утилиту, которая использует анализатор Java DOM. Он в основном берет файл XML, анализирует его и затем обрабатывает данные, используя один из следующих методов, чтобы фактически извлечь данные.
getElementByTagName()
getElementAtIndex()
getFirstChild()
getNextSibling()
getTextContent()
Теперь я должен сделать то же самое, но мне интересно, будет ли лучше использовать таблицу стилей XSLT. Организация, которая отправляет нам XML-файл, постоянно меняет свою схему, что означает, что мы должны изменить наш код, чтобы обслужить эти изменения схемы. Я не очень знаком с процессом XSLT, поэтому я пытаюсь выяснить, лучше ли мне использовать таблицы стилей XSLT, а не «ручной анализ».
Причина, по которой таблицы стилей XSLT выглядят привлекательно, заключается в том, что я думаю, что если схема XML-файла изменится, мне нужно будет только изменить таблицу стилей? Это правильно?
Еще одна вещь, которую я хотел бы знать, это то, какой из двух (XSLT-преобразователь или DOM-анализатор) лучше по производительности. Для ручного варианта я просто использую парсер DOM для разбора XML-файла. Как преобразователь XSLT на самом деле анализирует файл? Включает ли это дополнительные издержки по сравнению с анализом вручную XML-файла? Причина, по которой я спрашиваю, заключается в том, что производительность важна из-за характера данных, которые я буду обрабатывать.
Любой совет?
Спасибо
Редактировать
По сути, я сейчас занимаюсь синтаксическим анализом файла xml и обрабатываю значения в некоторых элементах xml. Я не преобразовываю XML-файл в любой другой формат. Я просто извлекаю некоторое значение, извлекаю строку из базы данных Oracle и сохраняю новую строку в другую таблицу. Анализируемый xml-файл содержит только справочные значения, которые я использую для извлечения некоторых данных из базы данных.
xslt не подходит в этом сценарии? Есть ли лучший подход, который я могу использовать, чтобы избежать изменений кода при изменении схемы?
Редактировать 2
Извините за недостаточную ясность в отношении того, что я делаю с данными XML. В основном это XML-файл, который содержит некоторую информацию. Я извлекаю эту информацию из файла XML и использую ее для получения дополнительной информации из локальной базы данных. Данные в XML-файле больше похожи на справочные ключи для данных, которые мне нужны в базе данных. Затем я беру содержимое, извлеченное из файла XML, плюс содержимое, извлеченное из базы данных, используя определенный ключ из файла XML, и сохраняю эти данные в другой таблице базы данных.
Проблема, с которой я столкнулся, заключается в том, что я знаю, как написать синтаксический анализатор DOM для извлечения необходимой мне информации из файла XML, но мне было интересно, было ли лучше использовать таблицу стилей XSLT, поскольку мне не пришлось бы менять код, если схема меняется.
Чтение ответов ниже звучит так, как будто XSLT используется только для преобразования и передачи XML-файла в другой XML-файл или какой-либо другой формат. Учитывая, что я не собираюсь преобразовывать XML-файл, вероятно, нет необходимости добавлять дополнительные накладные расходы при разборе таблицы стилей XSLT, а также XML-файла.