XPath获取下一个项目
我刚开始使用XPATH,而且我有一些关于它的function的问题/它是否可以做我想做的事情。 我在我的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>
我有存储在一个variables中的CurrentTop,CurrentItem和CurrentSub。
var CurrentTop = "1", CurrentItem = "1", CurrentSub = "A";
使用XPath查询,我希望能够select下一个Sub,不pipe它在文档中的位置,如果下一个Sub与CurrentItem不在同一个Item中,我也需要获取这些信息。 Top也一样
我正在使用Javascript。 我知道这可能需要在多个查询中完成。
例如:下一个项目将(按顺序):
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
我愿意接受关于如何改进XML文档格式的build议。
如果有帮助,我也使用NodeJS,XPath模块和NPM上提供的XMLDOM模块。
谢谢
我不知道node.js,但在XPath中,您可以使用following
轴来获取当前上下文元素之后的元素,而不pipe目标元素是否在同一个父元素中。 例如,要获取当前上下文元素之后的最近的sub
元素,可以使用以下expression式:
following::sub[1]
following-sibling
轴的对比,只能find同一父级中的当前上下文元素之后的元素。
- 使用meteor与Adobe Flash CreateJS工具包
- TypeError:无法读取未定义的属性'client_secret'
- 从node.js / express传递数组到jade模板
- 在sails中创buildUTC时间戳而不会覆盖“createdAt”和“updatedAt”
- PhpStorm和JavaScript:我得到“无法find声明去”
- 在MySQL上使用Promise进行并行插入查询失败
- node.js / backbone.js应用程序加载configuration文件设置
- 一旦读取完所有文件,使用asynchronous模块触发callback
- CouchDB,Node.js,摇篮 – 如何根据返回的数据获取数据