Javascript XPath获取下一项

Javascript XPath获取下一项,javascript,xml,node.js,xpath,Javascript,Xml,Node.js,Xpath,我刚开始使用XPATH,我对它的功能/它是否能做我想做的事情有一些疑问。我的XML文档中有以下结构: <root> <top id="1"> <item id="1"> <sub id="A"></sub> <sub id="B"></sub> <item> <item id="2"> <sub id="A">

我刚开始使用XPATH,我对它的功能/它是否能做我想做的事情有一些疑问。我的XML文档中有以下结构:

<root>
  <top id="1">
    <item id="1">
       <sub id="A"></sub>
       <sub id="B"></sub>
    <item>
    <item id="2">
       <sub id="A"></sub>
       <sub id="B"></sub>
    <item>
  </top>
  <top id="2">
    <item id="1">
       <sub id="A"></sub>
       <sub id="B"></sub>
    <item>
    <item id="2">
       <sub id="A"></sub>
       <sub id="B"></sub>
       <sub id="C"></sub>
    <item>
  </top>
</root>
使用XPath查询,我希望能够选择下一个子项,而不管它在文档中的什么位置,如果下一个子项与CurrentItem不在同一项中,我也需要获得该信息。上衣也是一样

我正在使用Javascript。我知道这可能需要在多个查询中完成

例如: 接下来的项目将是(按顺序):

我也愿意接受关于如何改进XML文档格式的建议

如果有帮助的话,我还将使用NPM上可用的NodeJS、XPath模块和XMLDOM模块


谢谢,我不知道node.js,但是在XPath中,无论目标元素是否在同一父元素中,都可以使用axis在当前上下文元素之后获取元素。例如,要获取当前上下文元素后面最近的
元素,可以使用以下表达式:

following::sub[1] 
与axis不同,axis只能在同一父元素中的当前上下文元素之后找到元素

TOP ITEM SUB

1   1    A
1   1    B
1   2    A
1   2    B
2   1    A
2   1    B
2   2    A
2   2    B
2   2    C
following::sub[1]