SelectNodes 与 XPath

2023-11-08

XPath 是 XML 的内容,这里 SelectNodes 是 javascript 中 XmlDocument 或 XmlNode 的一个方法。SelectNodes 使用 XPath 来选取节点。

重要语法

SelectNodes("item")

从当前节点的儿子节点中选择名称为 item 的节点。

SelectNodes("/item")

从根节点的儿子节点中选择名称为 item 的节点。

SelectNodes("//item")

从任意位置的节点上选择名称为 item 的节点。要重点突出这个任意位置,它不受当前节点的影响,也就是说假如当前节点是在第 100 层(有点夸张),也可以选择第一层的名称为 item 的节点。

SelectNodes(".")

选择当前节点。

SelectNodes("..")

选择当前节点的父节点。

SelectNodes("//item[@name]")

在 SelectNodes("//item") 的基础上,增加了一个限制,就是要求拥有 name 属性。

SelectNodes("//item[@name='111']")

在 SelectNodes("//item[@name]") 的基础上,增加了一个限制,就是要求 name 属性值为 111。注意语法中有引号;如果没有引号,则表示是数字类型,对于数字类型可以使用大于号、小于号等,比如:SelectNodes("//item[@v>333]")。

SelectNodes("//item[1]")

选择第一个 item,注意是第一个,不是第二个。

还有这里是指亲兄弟间的第一个 item,也就是说:父级若有三个 item,则选择第一个;若父级第二个 item 的有两个名称同样为 item 的儿子,则第一个儿子会被选择出来;若父级第三个 item 的也有两个名称同样为 item 的儿子,则第一个儿子也会被选择出来……

SelectNodes("//item[last()-1]")

倒数第二个节点,同样是指亲兄弟间的倒数第二个。

SelectNodes("//item[position()<=2]")

位置为第一和第二的节点(第一个节点的 position() 为 1),同样是指亲兄弟间的位置。

SelectNodes("//@name")

SelectNodes("/root/item/@name") 取 item 的 name 属性

选择 name 属性,注意这下选择的是属性,而不是节点了。用 Value 属性获取属性集合的属性值。

SelectNodes("/root/item")

根节点 root 下的 item 儿子节点。

SelectNodes("/root//item")

根节点 root 下的不管是儿子、孙子、重孙子……,只要是名称为 item 的统统选取出来。

通配符

  • 可用 * 表示任意节点名称,比如 SelectNodes("/channel/*/item");
  • 用 @* 表示任意属性;
  • 用 node() 表示任意类型的节点;
  • 用 text() 表示文本类型的节点

运算符

| 表示或。SelectNodes("//item|//channel"),选择 item 或 channel 节点

点击打开链接

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SelectNodes 与 XPath 的相关文章

  • 如何在 Lambda 中将对象上传到 S3?

    似乎无法将对象上传到 Lambda 中的 S3 本地一切正常 日志中没有错误可以显示出了什么问题 代码如下 console log Loading function var AWS require aws sdk var s3 new AW
  • 多次训练brain.js?

    在第一次训练后 如何将新信息 仅新信息 而不是所有信息 因为这会花费太多性能 训练到我的用 Brain js 制作的神经网络 它有点粗糙 但您可以使用以下结构来实现 如果我们加入 2 个训练数据集 旧数据集与新数据集 然后重新训练keepN
  • html 图像 src 调用 javaScript 变量

    这是我的代码 我想问 我怎样才能做到这一点 img src img apple 我一直在尝试使用 call 函数和 document onload 但它根本不起作用 有人可以救我吗 我假设你只是想用 javascript 更新图像 src
  • Twitter Bootstrap - 下拉菜单 - 箭头键不适用于 Firefox 中的输入标签

    要求 我想在带有用户名和密码字段的下拉菜单中放置一个登录表单 我可以做到这一点 除了以下问题之外 一切正常 Issue 打字时我无法使用箭头键 上 下 firefox 当输入位于下拉代码之外时 这很有效 这适用于其他浏览器 例如 googl
  • 如何用 JavaScript 修复图像透视变形和旋转?

    我有一些用手机拍摄的图像 有没有可以拉直纸张照片并将其压平的 JavaScript 库 例如 我想创建一个矩形图像 该图像没有任何失真 换句话说我想知道如何用 JavaScript 修复透视变形和旋转 例如 我发现下面的示例图像来自this
  • 在 UIWebView 中禁用复制和粘贴

    几乎 我已经尝试了一切方法来禁用复制 粘贴UIWebView但对我来说没有任何作用 我正在加载我的UIWebView来自字符串 字符串数组 如下所示 webView loadHTMLString NSString stringWithFor
  • 只保留 A-Z 0-9 并使用 javascript 从字符串中删除其他字符

    我正在尝试验证字符串以使它们成为有效的网址 我只需要保留 A Z 0 9 并使用以下命令从字符串中删除其他字符javascript or jquery 例如 贝儿餐厅 我需要将其转换为 百丽餐厅 所以字符被删除 只保留 A Z a z 0
  • 对使用“new”创建的数组上“map”的行为感到困惑[重复]

    这个问题在这里已经有答案了 我对结果感到困惑mapping 使用创建的数组new function returnsFourteen return 14 var a new Array 4 gt undefined x 4 in Chrome
  • Angular 2 将字符串转换为 md5 哈希

    我找到了ts md5 https www npmjs com package ts md5包 但在示例中它有一个hashStr方法 但现在不行了 类型上不存在属性 hashStr Md5 使用该错误后 该错误会记录在我的控制台中 我怎样才能
  • JQuery $.ajax() 在 java servlet 中发布数据

    我想将数据发送到 java servlet 进行处理 数据将具有可变长度并采用键 值对 A1984 1 A9873 5 A1674 2 A8724 1 A3574 3 A1165 5 数据不需要这样格式化 这就是我现在的方式 var sav
  • 在 javascript 中实现固定位置会导致 Safari 滚动时出现抖动

    固定位置不适用于我的用例 因为它固定在浏览器窗口上 您可能会处于文本在屏幕右侧之外且无法到达的状态 无论如何 我尝试使用绝对定位 然后调整javascript中的 顶部 它在 Firefox 和 Chrome 中运行良好 但在 Safari
  • ES6 静态方法引用 self? [复制]

    这个问题在这里已经有答案了 我有两节课 存储库和用户存储库 我想在 Repository 中定义一个静态方法 该方法在运行时调用 UserRepository 中的静态函数 有什么干净的方法可以做到这一点吗 class Repository
  • JavaScript 错误:MVC2 视图中的条件编译已关闭

    我试图在 MVC2 视图页面中单击时调用 JavaScript 函数 a href Select a JavaScript 函数 function SelectBenefit id code alert id alert code 这里 b
  • 如何使用 NextJS 使用自托管字体face?

    使用 NextJS 的字体 我已经阅读了有关如何在 NextJS 中使用自托管字体的不同主题 我得到了什么 wait compiling 当我这样做时 font face font family montserrat src url myp
  • 检查浏览器空闲的替代方法

    我有一个简单的网络信息亭 在鼠标未使用 jQuery 移动 30 秒后显示用户操作提示 var i null body wrap mousemove function clearTimeout i overlay fadeOut i set
  • 如何使用 Javascript OAuth 库不暴露您的密钥?

    看着Twitter OAuth 库 https dev twitter com docs twitter libraries 我看到了这个注释 将 JavaScript 与 OAuth 结合使用时要小心 不要暴露你的钥匙 然后 看着jsOA
  • 日历中 primefaces ajax 上的事件日期选择不起作用

    我有一个日历
  • javascript:完全删除top.location.hash?

    如果我的地址栏中已经有一个哈希值 例如domain com whatever 我打电话 top location hash wathever 被转换为domain com 没有任何内容 是否可以完全删除哈希值 所以没有 left 因为如果我
  • VS Code 扩展 - 获取完整路径

    我正在为 VS Code 编写一个插件 我需要知道调用扩展的文件的路径 无论是从编辑器上下文菜单或资源管理器上下文菜单调用还是用户只需键入扩展命令 function activate context get full path of the
  • Safari 扩展将消息发送到特定选项卡

    有没有办法从全局页面发送消息到特定选项卡 我目前正在做的是 在创建选项卡时 注入的脚本会创建一个唯一的 ID 并将包含该编号的消息发送到全局页面 并且全局页面会保存该编号 如果全局页面需要发送一些数据到一个tab 即 tab 3 然后全局页

随机推荐

  • Android11获取当前手机已安装应用列表

    最近在上架GooglePlay 奈何Google8月份刚发布的审核警告 Google也说了能适用的APP类型如下 其实 QUERY ALL PACKAGES 这个权限是针对 Android11以及以上系统获取不全当前手机已安装app列表添加
  • chatgpt不好使?那是你不会问,github上收集的100多种问法,让你快速玩转chatgpt

    你觉得没什么可用 是因为你不会用 github上大牛门收集的一百多种问法 快去试试吧 原文地址 https github com f awesome chatgpt prompts 由于是官方问法 有些问法在国内版本可能不太好用 自行调整问
  • 有效需求分析培训梳理(一)

    根据徐锋老师的 有效需求分析 以及参加老师两天的现场培训整理 业务驱动的需求思想 1 澄清问题 a 原始需求是什么层次 方案级 问题级 b 想要解决谁的 什么问题 c 用户现在遇到这个问题会采用什么样的解决方案 d 这个问题中有需要进一步细
  • Stream API ( Java 8 )

    Stream API 简介 Stream API是Java8中的新特性 基于Lambda表达式 对Collection 集合 的各种操作有了很大的改变 极大的提升了编码效率和代码的可读性 Stream有串行和并行两种模式 并行模式会自动创建
  • 【IC设计】ZC706板卡点灯入门(含Verilog代码,xdc约束,实验截图)

    文章目录 假定已知的前置知识 需求 注意点 代码实现 顶层模块 led闪烁模块 xdc约束 这篇博客将针对AMD Zynq 7000 SoC ZC706 Evaluation Kit板卡 对应Vivado创建工程时FPGA型号 XC7Z04
  • Zookeeper工作原理(详细)

    1 Zookeeper的角色 领导者 leader 负责进行投票的发起和决议 更新系统状态 学习者 learner 包括跟随者 follower 和观察者 observer follower用于接受客户端请求并想客户端返回结果 在选主过程中
  • HBuilder X安装教程(2023年,3月)

    一 下载HBuilder 1 点击链接进入HBuilder官网 https www dcloud io 2 点击 Download for Windows 下载正式版压缩包 3 或者点击 more 展开选择Windows 正式版 点击 zi
  • 1.下面的程序实现依次用内存的0:0~0:15单元中的内容改写程序中的数据,完成程序2.下面的程序实现依次用内存0:0~0:15单元中的内容改写程序中的数据,数据的传递用栈来进行。栈空间设置在程序内。

    题目 下面的程序实现依次用内存的0 0 0 15单元中的内容改写程序中的数据 完成程序 assume cs codesg codesg segment dw 0123h 0456h 0789h 0abch 0defh 0fedh 0cbah
  • JAVA封装和继承详解

    封装和继承 访问修饰符 访问修饰符可以修饰类 方法或者变量 通常放在语句的最前端 访问修饰符就是定义类 方法和变量可以被调用的范围 默认修饰符可以在类上使用 同包下可以继承 不同包下不可以继承 protected private 修饰符不能
  • 6个usb口服务器无响应,USB接口不能用(没反应)修复方法

    昨天早上开始 我遇到了第一个问题 鼠标失灵了 我的这个鼠标用了6 7年了 笔记本换了几个 鼠标一直没换 接头附近的电线破皮了 内部的铜丝都看得见 老早就担心有断丝 这回显然是彻底断了 接触不良 冬啊冬的声音是说明鼠标和电脑一会儿连接一会儿断
  • mysql怎么子查询_在mysql中如何进行子查询?

    在mysql中 子查询是指将一个查询语句嵌套在另一个查询语句中 可以在SELECT UPDATE和 DELETE语句中配合WHERE子句进行实现 WHERE子句中语法格式为 WHERE 另一个查询语句 推荐教程 mysql视频教程 子查询是
  • gitee提交被拒绝的问题 Authentication failed for  gitee

    今天第一次用gitee 提交的时候报错 Authentication failed for gitee 可能是你的用户名密码错误了 这里告诉大家一个windows下的更改方法 按图一步一步的更改即可 如想获得更多编程支持 请扫描下方二维码关
  • C语言回调函数详解及实例

    C语言回调函数详解及实例 回调函数 函数 F1 调用函数 F2 的时候 函数 F1 通过参数给函数 F2 传递了另外一个函数 F3 的指针 在函数 F2 执行的过程中 函数F2 调用了函数 F3 这个动作就叫做回调 Callback 而先被
  • 拓展欧几里得经典例题

    LCS代表最长的公共子序列 是一个众所周知的问题 这个问题中的序列意味着一个整数列表 而序列X被认为是另一个序列Y的子序列 当序列X可以从序列Y中删除零个或多个元素而不改变其余元素的顺序时 则可以得到序列X 在这个问题中 给你两个序列 你的
  • rpm -ivh 解释

    rpm ivh解释 i install 安装软件包 v view 可视化 h hour 方便自己记忆 显示安装进度 简单来讲就是 可视化并显示进度地 安装软件 nodeps 不验证软件包的依赖 RPM 是 LINUX 下的一种软件的可执行程
  • 高效的串行数据驱动框架

    高效的串行数据驱动框架 说明 硬件平台 代码实现 测试 移植 需要注意的地方 代码仓库 说明 最近在看到一篇博文 地址 讲高效串口的实现 简单的说就是利用了DMA 空闲中断 双缓冲 循环接收方式 实际音频上面也是双缓冲这样的实现方式 只不过
  • [转载]QT框架的一个截图工具

    原文标题 Snipaste 开发了三年的截图工具 但不只是截图 原文作者 levie 一直以来都想要入门QT 但是却一直没有付诸行动 昨天在无意间发现了 这个开发者的截图工具 虽然我还没有使用 但是看上去却很能吸引目光 便重新激发了我开始学
  • VCS+MATLAB联合仿真

    原文链接 https www youtube com watch v ujSBTA3v8eA 算法工程通常会用Matlab来建模 Digital designer会将Matlab model 作为golden model 进行设计和验证 面
  • 解决在cmd中输入mongo出现‘mongo‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件的问题~

    当我想通过shell连接mongoDB时 输入mongo命令 出现下述错误 起初我以为我是忘记配置环境变量了 但检查后发现自己配置了 如果你和我是一样的问题 明明配置了环境变量 但上述问题依然没有被解决 后来我通过这篇文章完美了解决了问题
  • SelectNodes 与 XPath

    XPath 是 XML 的内容 这里 SelectNodes 是 javascript 中 XmlDocument 或 XmlNode 的一个方法 SelectNodes 使用 XPath 来选取节点 重要语法 SelectNodes it