Java Xpath查询以在路径中后退

Java Xpath查询以在路径中后退,java,xml,xpath,Java,Xml,Xpath,作为Xpath和Java的新手,我得到了以下示例xml。我正在尝试获取每个墙元素的厚度值墙元素或者已经在我很容易得到的常量中,或者将它们的常量引用到另一个墙元素(在本例中是第一个墙) 我可以获取reference属性的值,但是由于每次xpath.evaluate((//node1/wall)[I]/*/thickness/node()、new-InputSource(new-FileReader(inputPath))、XPathConstants.NODESET)时我都从根目录中进行查询,因此

作为Xpath和Java的新手,我得到了以下示例xml。我正在尝试获取每个
元素的
厚度
值<代码>墙元素或者已经在我很容易得到的
常量中,或者将它们的
常量引用到另一个
元素(在本例中是第一个

我可以获取
reference
属性的值,但是由于每次
xpath.evaluate((//node1/wall)[I]/*/thickness/node()、new-InputSource(new-FileReader(inputPath))、XPathConstants.NODESET
)时我都从根目录中进行查询,因此我无法在路径中后退

reference
属性在实际场景中的深度也各不相同,因此它始终是引用指向的“第一个”
wall

我尝试获取父节点并创建路径列表,但未成功。 有什么解决办法吗?提前通知Tnx

<node1>
  <wall>
    <const>
    <thickness>100</thickenss>
   </const>
  </wall>
   .
   .
   .
   <wall>
    <const reference="../../wall/const"/>
   </wall>
</node1>

100
.
.
.

如果“reference”属性不包含厚度或不存在,您可以捕获父节点,查找第一个“wall”节点并返回厚度。

问题是“reference”在实际情况下并不总是指向“first”wall。