如何在Java中从DOM检索现有元素中的特定元素(或节点列表)

如何在Java中从DOM检索现有元素中的特定元素(或节点列表),java,dom,Java,Dom,我试图解析一个XML文件,其中包含多个名为A的记录。每个A都有多个名为B的组记录。B中的各种记录有名称x、y和z 我的问题是: 如何导航到B和B 如何获得循环中x的所有值。 DOM被设置为文档,即名称A的元素 我正在Java中使用DOM解析器 样本记录: <A> <B><x>123</x><y>asdf</y><z>A345</z></B> <B><x>98

我试图解析一个XML文件,其中包含多个名为A的记录。每个A都有多个名为B的组记录。B中的各种记录有名称x、y和z

我的问题是:

如何导航到B和B 如何获得循环中x的所有值。 DOM被设置为文档,即名称A的元素

我正在Java中使用DOM解析器

样本记录:

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

除了直接使用标准DOM API(对于这些任务来说通常有点冗长)之外,您还可以将其用作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()) {
  // ...
}

我对您在上述文章中描述的XML结构感到有点困惑。请发布文档片段。@AVD我添加了一个示例xml记录…您好。。。A之前和B之后的斜杠数有什么规定吗?请解释一下,在A->B->x示例的帮助下,两个斜杠意味着在文档中的任何地方都可以找到A。一个斜杠意味着将B作为a的直接子项查找。由于您没有明确指定您的需求,我是这样做的。如果a是文档的根,您可以使用/a/B/*
// 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()) {
  // ...
}