Intereting Posts
Actionbarsherlock IcsSpinner – ширина всегда устанавливается на самые широкие позиции Android ImageView setPadding не действует Видео установлено в «истинный» в URI видеочата Skype, но видео не активируется при запуске вызова Как добавить разделители между отключенными элементами в ListView? – Леденец Как я могу создать новый проект без appcompat_v7 Библиотека проверки лицензии Android в автономном режиме Как отображать персидские (фарси) числа в представлениях Преобразование приложения для Android в веб-приложение Как решить Невозможно найти явную активность в firebase AuthUi? Кэширование в веб-браузере Android Как добавить два текстовых поля редактирования в диалоговом окне предупреждения Как андроид обрабатывает события GUI? Android Как вращать иглу при изменении скорости? Android: SlidingDrawer исчезает под SurfaceView Как создать файл изображения SD-карты для эмулятора Android?

Как я могу получить определенные узлы из XML с помощью XPath в Java?

Моя файловая структура xml похожа на эту

<?xml version="1.0" encoding="utf-8" ?> <book> <chapters> <chapter id="1"> <page id="1" cid= "1" bid = "Book1"> <text>Hi</text> </page> <page id="2" cid= "1" bid = "Book1"> <text>Hi</text> </page> </chapter> <chapter id="2"> <page id="1" cid= "2" bid = "Book1"> <text>Hi</text> </page> <page id="2" cid= "2" bid = "Book1"> <text>Hi</text> </page> </chapter> <chapter id="3"> <page id="1" cid= "3" bid = "Book1"> <text>Hi</text> </page> <page id="2" cid= "3" bid = "Book1"> <text>Hi</text> </page> </chapter> </chapters> </book> 

Я хочу получить конкретный узел страницы, передав идентификатор страницы и идентификатор главы . Как я могу это достичь?

Кроме того, в узле книги содержится слишком много главы, и каждая глава содержит много страниц. Итак, я использую синтаксический анализатор SAX для анализа содержимого.

«Как получить определенные узлы из XML с помощью XPath в Java?»

Я не очень хорошо знаком с Java и Android, но xpath, чтобы получить конкретную page из вашего XML-образца, передавая page id chapter id должен выглядеть примерно так:

 //chapter[@id='chapter_id_here']/page[@id='page_id_here'] 

краткое объяснение :

  • //chapter : найти элемент chapter любом месте XML …
  • [@id='chapter_id_here'] : … где значение атрибута id равно определенному идентификатору главы
  • /page : от каждого из фильтрованных элементов chapter , найдите page дочерних элементов …
  • [@id='page_id_here'] : … где значение атрибута id равно идентификатору страницы

Вы можете следить за этими потоками для реализации для выполнения выражения xpath в Java: как читать XML с использованием XPath в Java и в Android: поиск в XML-файле с помощью XPath в Android