Голосов: 0
#1
Описание [Инфостарт] Разбор XML документа - почти все возможные способы (2025):
К вам поступил XML-документ. Как извлечь из него данные для обработки в 1С?
Рассмотрим различные подходы к обработке XML-документов.
1. Чтение XML-документа как есть.
Отслеживание текущей позиции в XML-документе осуществляется с помощью переменной ТекущийПуть. На основе этой переменной заполняются (или игнорируются) соответствующие данные в 1С.
2. Получение DOM-документа из XML-файла и последовательный перебор всех узлов полученного документа.
Этот метод немного проще прямого чтения XML (57 строк кода против 62), но его быстродействие интересно: для файла в 10 тысяч записей обработка заняла 12 секунд (быстрее более чем в два раза), но для файла со 100 тысячами записей резко поднялась до 1000 секунд (медленнее более чем в три раза).
3. Подобный второму метод, но вместо последовательного перебора узлов применяется отбор требуемых узлов в DOM-документе с помощью выражений XPath.
Этот метод немного проще, чем простой перебор узлов в DOM-документе, но его быстродействие…
При 10 000 записей 69 секунд, а для 100 000 обработка длилась более часа, так и не завершилась, после чего была снята принудительно.
Очевидно, метод с использованием DOM, особенно при поиске узлов документа с помощью выражений XPath, следует использовать только для небольших изменений DOM-документа со сложной структурой узлов.
Все последующие методы используют для разбора XML-документа фабрику XDTO.
4. Применение метода ПрочитатьXML глобальной фабрики XDTO.
Тип получаемого объекта не указывается, его определяет сам метод фабрики. Есть нюанс: если тип получаемого объекта XDTO не указан, фабрика не всегда может определить, является ли он одиночным объектом или списком из нескольких одинаковых объектов (в нашем примере, если ПриходныйОрдер в XML-документе будет один, фабрика посчитает, что Приходы XDTO.Приходный Ордер — это одиночный объект, а не список).
Этот метод не только заметно проще, но и показывает отличное быстродействие: 4,6 секунды на 10 000 записей и 46 секунд на 100 000.
5. Аналогично предыдущему методу, но глобальной фабрике XDTO на вход подаётся не только XML-документ, но и его тип.
Тип берётся из ветки конфигурации XDTO-пакеты. Если те, кто передаёт вам XML-данные, хорошие люди, они должны передать вам и XML-схему данных — файл с расширением .xsd, из которого вы создадите в своей конфигурации XDTO-пакет (команда импорт XML-схемы). Если это не так, обычно не сложно создать требуемый пакет вручную, анализируя переданные XML-данные.
Метод замечательный как по простоте создания, так и по быстродействию — 3,1 секунды на 10 000 записей.
6. Модификация предыдущего метода, но без использования объекта конфигурации XDTO-пакет и фабрика XDTO создаётся на лету из текстового описания XML-схемы.
В прилагаемой конфигурации все методы разбора XML представлены в общей команде РазобратьXML, а в другой общей команде СоздатьXML — средства для создания тестовых данных.
Подробнее:
Для просмотра содержимого вам необходимо авторизоваться
Скачать курс [Инфостарт] Разбор XML документа - почти все возможные способы (2025):
Для просмотра содержимого вам необходимо авторизоваться
Последнее редактирование модератором: