javascript - 使用 xpath.js NPM 模块解析 XML

标签 javascript xml node.js xpath

我的 XML 看起来像这样:

<jobs>
  <job>
    <title>Engineer - System Planning</title>
    <url>http://my.jobs/0629cdc680d04cf3bcd711a1c0b69836321</url>
    <company>Iberdrola USA</company>
    <location>Augusta, ME</location>
    <dateacquired>2013-3-22 6:24 PM</dateacquired>
    <jvid>0629cdc680d04cf3bcd711a1c0b69836321</jvid>
  </job>
  <job>
    <title>Engineer - Hydro</title>
    <url>http://my.jobs/61cccbfba50c4f93a5169aafc13c82b2321</url>
    <company>Iberdrola USA</company>
    <location>Rochester, NY</location>
    <dateacquired>2013-7-5 8:33 PM</dateacquired>
    <jvid>61cccbfba50c4f93a5169aafc13c82b2321</jvid>
  </job>
</jobs>

我想使用 XPath.js NPM 模块 ( https://www.npmjs.org/package/xpath.js )。但我只是不确定如何使用该模块遍历 XML 文档中的每个 job

最佳答案

来自 xpath.js documentation 中的第一个示例,使用像 //job 这样的 XPath 表达式你会得到一个 Node 集:

var nodes = select(doc, "//job");

您可以使用常规 JavaScript 对其进行循环,因为它是一个数组。然后,您可以将每个 Node 作为参数传递到另一个 XPath 表达式中,并获取其他 Node 内的数据:

for (i = 0; i < nodes.length; i++) {
    var title   = select(nodes[i], "title/text()")[0].data;
    var url     = select(nodes[i], "url/text()")[0].data;
    var company = select(nodes[i], "company/text()")[0].data;
    ...
}

关于javascript - 使用 xpath.js NPM 模块解析 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22518186/

相关文章:

Javascript 基本单选按钮警报

javascript - 使用 JavaScript 进行日期验证(出院日期怎么总是大于入院日期)

c++ - 如何在 gSOAP 中绑定(bind)多态类型

node.js - NodeJS 静态文件夹中的 HTML 无法加载具有相对路径的资源

java - 在android中使用socket.io时如何在运行时获取 View ?

node.js - $addToSet 与子文档数组

javascript - jquery click事件应该在类被删除时停止但它不会

javascript - 弹出窗口完全加载后如何单击按钮

xml - Maven 构建失败,Liquibase : cvc-elt. 1 找不到元素声明

javascript - 你如何在 node.js 中获取和解析 xml?