11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
||||||
1 | ||||||
Парсинг XML + построение дерева данных31.03.2015, 12:01. Показов 3713. Ответов 12
Метки нет (Все метки)
Здравствуйте, форумчате!
В общем, передо мной стоит такая задача: Нужно парсить несколько XML файлов и полученные данные вывести в единое дерево. Подскажите, каким образом это можно реализовать и где копать? Добавлено через 10 минут XML выглядят примерно так:
0
|
31.03.2015, 12:01 | |
Ответы с готовыми решениями:
12
Опросник. Создание дерева зависимостей в treeView, сохранение дерева в XML, построение дерева в treeView из XML Парсинг файлов формата IFC и построение дерева TreeView на основе полученных данных Построение дерева TreeView из XML Операции над бинарными деревьями: построение дерева, обход дерева, вставка и удаление элемента дерева |
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
|
02.04.2015, 10:22 [ТС] | 3 |
Спасибо, потихоньку разбираюсь. Но возникла проблема.
Если теги в XML написаны с большой буквы, то данные не выводятся. Добавлено через 18 часов 40 минут Разобрался немного лучше. Сначала необходимо на основе xml построить схему xsd. Далее с помощью утилиты xjc сгенерировать модели классов. Ну и Unmarshaling.
0
|
18 / 18 / 12
Регистрация: 27.03.2015
Сообщений: 72
|
|
02.04.2015, 10:44 | 4 |
А стандартные пакеты javax.xml.*, org.w3c.org.* чем хуже?
0
|
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
|
||||||
02.04.2015, 10:58 | 5 | |||||
Если xsd надо составлять самому, а не откуда-нибудь из вне брать, то пиши классы сам. Не усложняй... Руками парсинг описывать надо.
1
|
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
|
02.04.2015, 11:07 [ТС] | 6 |
На самом деле есть определенная xsd. Просто изначально был только xml-файл..
Добавлено через 3 минуты Остался только вопрос, как теперь полученные данные поместить в дерево?
0
|
4866 / 2664 / 914
Регистрация: 29.11.2010
Сообщений: 5,746
|
||||||
02.04.2015, 22:00 | 7 | |||||
Ваш исходный XML некорректный.
Попробуйте пакет fasterxml -- jackson-jaxrs-xml-provider (вместе с jackson-databind) javax.xml.bind.annotations.* поддерживаются. Если бы вы привели правильный формат исходного XML и root для конечного файла, можно было бы привести пример гораздо конкретнее.
1
|
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
|
03.04.2015, 08:30 [ТС] | 8 |
lemegeton, спасибо! Просто исходная XML очень большая.
А каким образом можно реализовать, если на входе есть несколько xml-файлов (причем могут быть различного содержания), и необходимо выдергивать оттуда все данные. Возможно ли в процессе работы программы генерировать модель классов на основе xml-ки?
0
|
4866 / 2664 / 914
Регистрация: 29.11.2010
Сообщений: 5,746
|
|
03.04.2015, 13:45 | 9 |
Сформулируйте, пожалуйста, задачу более полно. Слишком много информации допускающей разночтение. Например, изначально не было условия, что исходные файлы могут быть различного содержания.
Я так понимаю, что со чтением файлов вы разобрались? Покажите, пожалуйста, что у вас получилось.
0
|
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
||||||
03.04.2015, 14:23 [ТС] | 10 | |||||
Вот класс который парсит xml:
Класс Chrom был сгенерирован вышеописанным образом (xjc). Но предполагаю, что нужно иным образом все это делать, поскольку xml-ки могут быть разными. ParseCh вызываю при нажатии на кнопку.
0
|
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
|
07.04.2015, 11:18 [ТС] | 11 |
А вообще можно вместо конкретных данных, получать путь к этим данным (в виде дерева тегов)? и как?
0
|
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
|||||||||||
17.04.2015, 11:22 [ТС] | 12 | ||||||||||
В общем, в данный момент получилась программка, в которой выбираем файл, открываются и парсятся xml.
Показываем дерево, в котором, при нажатии на лист дерева, выводятся в EditorPane данные, полученные из xml файла. Но пока сделал только для одного конкретного параметра из xml ( teg_data = channel1.getName(); ) Части кода:
0
|
11 / 11 / 4
Регистрация: 12.03.2015
Сообщений: 94
|
|
17.04.2015, 11:43 [ТС] | 13 |
То есть преобразовать метод класса Parse_Channel так, чтобы получая 2ой параметр (nName), возвращал, в соответствии этому параметру, данные из xml.
0
|
17.04.2015, 11:43 | |
17.04.2015, 11:43 | |
Помогаю со студенческими работами здесь
13
Построение дерева на основании данных из Оракла Парсинг данных из простенького XML TreeView: построение дерева на основе данных из БД Access XML парсинг. Получение данных из функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства
Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
|
Что такое NullReferenceException и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
|
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
|
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
|
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
|
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
|
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее:
На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
|
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript
В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
|
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
|
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален
В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
|
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
|
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели
В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
|