![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Стал вот возиться-вспоминать работу с XML и не могу решить простую вроде проблему.
Надо вставить элемент не в конец документа, а в середину, на место определенное или индексом или другим, уже имеющимся в документе, элементом. Собственно, стоит задача дополнения документа данными с одновременной сортировкой по значениям атрибутов, но это не главное. Что-то ничего не получается. Работать пытаюсь с dom4j-1.6.1 но просто потому, что эта jar-библиотека нашлась на моем компе и, предположительно, ее-то я в древности и использовал. Но может сейчас уже есть что-то лучшее для работы с XML и DOM? Если да, то посоветуйте, пожалуйста. Проект пока только начат - заменить библиотеку будет не сложно. Подскажите пожалуйста. Что-то нагуглить ничего толкового не удается. -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 40 Всего: 75 |
Вот небольшой пример, он открывает существующий документ, парсит и добавляет к тэгу target тег newTag.
-------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| _Y_ |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
jk1, спасибо, но я, видимо, неясно описал свой вопрос.
Твой код находит заданный элемент по тэгу и индексу и присоединяет новый элемент к нему, то есть наращивает ветвь. Мне же надо сделать именно вставку, то есть вставить элемент между имеющимися на тот же уровень. Кроме того, твой код создает новый элемент по названию тэга. Мне же надо присоединить уже готовый элемент. Т.е. исходный документ:
Имеется уже готовый DOMElement
Нужно сделать
-------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
||||||
|
|||||||
| dobrolub |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 385 Регистрация: 18.12.2009 Где: Vancouver, Canada Репутация: 11 Всего: 16 |
посмотри на
Node.insertBefore(Node newChild, Node refChild) Node.replaceChild(Node newChild, Node oldChild) Node.removeChild(Node child) это похоже то, что тебе нужно file:///Users/alex/Documents/javadoc/jse/docs/api/org/w3c/dom/Node.html#insertBefore(org.w3c.dom.Node,%20org.w3c.dom.Node) Это сообщение отредактировал(а) dobrolub - 4.4.2010, 09:55 |
|||
|
||||
| _Y_ |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1651 Регистрация: 27.11.2006 Репутация: 5 Всего: 34 |
Спасибо. Так все и работает. Проблема была в попытке использовать dom4j, когда нужно было пользоваться "родным" w3c.dom.
Кстати, забрался на старую работу и посмотрел свои же старые исходники. Та же история. В первых версиях возился с dom4j, а потом от него отказался. Не пора ли опять на Альцгеймера проверяться -------------------- Я вот в этом поучаствовал: http://sbor-nik.appspot.com/kick.jsp?id=sbor5737960678883328 (на правах саморекламы:) |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |