Извлечение дочерних элементов XML в Java

У меня есть требование, когда я должен извлекать части дочерних узлов XML и использовать их для создания отчетов.

Вот пример примера XML-кода:

<A>
 <B>
  <C>
   <D>
   </D>
   <D>
   </D>
  </C>
 </B>
 <B>
  <C>
   <D>
   </D>
  </C>
 </B>
 <B>
  <C>
  </C>
 </B>
</A>

Я хочу извлечь все элементы с B в качестве имени тега XML и использовать их для создания отчетов. Может кто-нибудь объяснить, как мы можем извлечь все элементы.

PS: Эти извлеченные элементы также должны иметь свои дочерние элементы.


person Mahesh    schedule 29.07.2014    source источник
comment
Вы можете использовать любой java xml API для этого. Посмотрите онлайн.   -  person james    schedule 30.07.2014
comment
@Mahesh проверить этот ответ stackoverflow.com/questions/13818129/ Вы ищете класс SaxParser   -  person t3dodson    schedule 30.07.2014


Ответы (2)


Вот простой пример использования объектной модели документа для обхода XML. файл:

DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
Document document = documentBuilder.parse(new File("input.xml"));
NodeList bNodes = document.getElementsByTagName("B");
for(int i = 0; i < bNodes.getLength(); i++) {
    Element bElement = (Element) bNodes.item(i);
    NodeList cNodes = bElement.getElementsByTagName("C");
    // ...
}
person M A    schedule 29.07.2014

Вы можете использовать Jsoup для этого, это очень просто использовать API и есть документация по библиотеке

Загрузка: http://jsoup.org/download

Документы: http://jsoup.org/cookbook/introduction/parsing-a-document

person user2300851    schedule 29.07.2014