
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
20.01.2013, 15:22:46
|
|||
|---|---|---|---|
Работа с библиотекой Dom4j |
|||
|
#18+
Здравствуйте. Есть xml-файл с такой структурой: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. В зависимости от содержимого элемента <third>, нужно вывести всё содержимое <second>, в т.ч. и вложенные элементы. Т.е. если переменная String abc="one", то "one" разыскивается в тегах <third> и где найдена, там выводится всё содержимое тега <second> вместе с дочерними элементами. Вытащить из xml-ля содержимое одного тега можно таким образом NodeList children = element.getElementsByTagName("third"), но как узнать какой именно тег <third> нужно взять, в зависимости от его содержимого и как вытащить вместе с ним и родительский элемент, есть ли для этого стандартный метод в dom4j ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.01.2013, 22:10:52
|
|||
|---|---|---|---|
|
|||
Работа с библиотекой Dom4j |
|||
|
#18+
Метод получения родительского элемента сложно не найти http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/Node.html#getParent%28%29 Сам вопрос не очень понял. Либо используйте xpath для сложного поиска. Либо перебирайте ноды, анализируйте содержимое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.01.2013, 23:19:24
|
|||
|---|---|---|---|
Работа с библиотекой Dom4j |
|||
|
#18+
BlazkowiczСам вопрос не очень понял. Ну, суть в том, что программа анализирует содержимое тега <third> на наличие какого-то слова, если находит, например, слово "five", то выводит на экран всю ветку, включая родительский элемент Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
20.01.2013, 23:47:12
|
|||
|---|---|---|---|
|
|||
Работа с библиотекой Dom4j |
|||
|
#18+
И в чем конкретно проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.01.2013, 00:10:54
|
|||
|---|---|---|---|
Работа с библиотекой Dom4j |
|||
|
#18+
BlazkowiczИ в чем конкретно проблема? В общем, я нахожу слово "five", теперь мне нужно вывести элемент, в котором я его нашел и его родительский элемент, вот так Код: xml 1. 2. 3. 4. 5. 6. 7. Проблема в том, что я не знаю, как найдя слово "five", потом подобраться к тегу <third>, в котором оно содержится и вывести именно тот тег <third>, в содержимом которого есть слово "five" и его родительский элемент <second>, а не просто все теги <third>, которые есть в документе xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.01.2013, 11:08:28
|
|||
|---|---|---|---|
|
|||
Работа с библиотекой Dom4j |
|||
|
#18+
alexey94Проблема в том, что я не знаю, как найдя слово "five", потом подобраться к тегу <third>, в котором оно содержится и вывести именно тот тег <third>, в содержимом которого есть слово "five" и его родительский элемент <second>, а не просто все теги <third>, которые есть в документе xml. В чем сложность. Перебором находим элемент, у которого нет дочерних элеметов. Читаем его textContent. Если в textContent имеется искомое слово и это "third". То это наш элемент. Это так трудно запрограммировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.01.2013, 11:09:14
|
|||
|---|---|---|---|
|
|||
Работа с библиотекой Dom4j |
|||
|
#18+
dom4j - это требование ? Если нет - можно попробовать использовать Jaxb, представив ноды xml в виде объектов, а дальше циклом перебирать их... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.01.2013, 13:45:26
|
|||
|---|---|---|---|
Работа с библиотекой Dom4j |
|||
|
#18+
alexander00513dom4j - это требование ? Если нет - можно попробовать использовать Jaxb, представив ноды xml в виде объектов, а дальше циклом перебирать их... Цикл хорош только в простейших случаях. Если автору нужно оглядываться назад на несколько тегов или наоборот смотреть вперёд то решение с циклом будет весьма сложно и чревато ошибками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.01.2013, 13:58:00
|
|||
|---|---|---|---|
|
|||
Работа с библиотекой Dom4j |
|||
|
#18+
Согласен.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.01.2013, 20:00:16
|
|||
|---|---|---|---|
Работа с библиотекой Dom4j |
|||
|
#18+
Blazkowiczalexey94Проблема в том, что я не знаю, как найдя слово "five", потом подобраться к тегу <third>, в котором оно содержится и вывести именно тот тег <third>, в содержимом которого есть слово "five" и его родительский элемент <second>, а не просто все теги <third>, которые есть в документе xml. В чем сложность. Перебором находим элемент, у которого нет дочерних элеметов. Читаем его textContent. Если в textContent имеется искомое слово и это "third". То это наш элемент. Это так трудно запрограммировать? Спасибо, попробую так сделать. Запрограммировать то не сложно, а вот додуматься да ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2013, 14:56:30
|
|||
|---|---|---|---|
Работа с библиотекой Dom4j |
|||
|
#18+
Я сделал вот так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Он выводит четыре пустых закрытых тега Код: xml 1. А когда сделал вот так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Выводит Код: xml 1. А как сделать так, чтобы он выводит текст вместе с тегами, хотя бы с теми, в которые этот текст заключен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.01.2013, 15:21:08
|
|||
|---|---|---|---|
|
|||
Работа с библиотекой Dom4j |
|||
|
#18+
В дебаге посмотрите. Элементы List это Node. У Node можно вызвать соответствующие методы и получить содержимой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=59&tablet=1&tid=2130146]: |
0ms |
get settings: |
21ms |
get forum list: |
24ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
50ms |
get topic data: |
17ms |
get forum data: |
4ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 355ms |
| total: | 561ms |

| 0 / 0 |
