Как получить конкретный элемент (или список узлов) в существующем элементе из DOM в Java - PullRequest
0 голосов
/ 18 сентября 2011

Я пытаюсь проанализировать файл XML, который содержит несколько записей с именем A. Каждый A имеет несколько групповых записей с именем B. Различные записи в B имеют имена x, y и z.

Мои вопросы:

  • Как мне перейти к B и
  • как получить все значения x в цикле.

DOM установлен на документ (то есть элементы имени "A")

Я использую парсер DOM в Java.

Пример записи:

<A>
  <B><x>123</x><y>asdf</y><z>A345</z></B>
  <B><x>987</x><y>ytre</y><z>Z959</z></B>
</A>

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Помимо непосредственного использования стандартного API DOM, который, как правило, немного многословен для этих задач, вы также можете использовать jOOX в качестве jquery -подобной оболочки для DOM.Вот пример того, как его использовать:

// Loop over all x element values within B using css-style selectors
for (String x : $(document).find("B x").texts()) {
  // ...
}

// Loop over all x element values within B using XPath
for (String x : $(document).xpath("//B/x").texts()) {
  // ...
}

// Loop over all x element values within B using the jOOX API
for (String x : $(document).find("B").children("x").texts()) {
  // ...
}
0 голосов
/ 18 сентября 2011
    Document yourDom = ....;

    XPathFactory xpf = XPathFactory.newInstance();
    XPath xp = xpf.newXPath();

    XPathExpression xpe = xp.compile("//A/B/*");
    NodeList nodes = (NodeList) xpe.evaluate(yourDom, XPathConstants.NODESET);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...