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 的相关文章

  • JSF - 在 ajax 调用上传递参数 - 这段代码有什么问题?

    当我进行 ajax 调用时 我需要将参数传递给 bean 我的豆子是这样的 ManagedBean RequestScoped public class Selector ManagedProperty value param page p
  • TypeError: props.render 不是一个函数(React hook 形式)

    我将方法作为我用react hook form制作的形式的道具传递 当从react hook form添加控制器时 它给了我 TypeError props render不是一个函数 我在网上找不到任何解决方案 因此感谢任何帮助 impor
  • jqgrid删除:没有获取值

    我使用 JSP 和 Servlet IDE Eclipse 数据库 Oracle10 开发 Web 应用程序 我在用JQGRID以表格格式显示数据 我还想要添加 编辑 删除的功能JQGRID 到目前为止我已经完成了编辑功能 现在我想要Del
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • ajax推送服务器

    好吧 我最近写了一个ajax推送脚本 其中后端的php在等待某人更新时处于休眠状态 但是休眠的进程占用了大量的cpu 关于如何防止这种情况的任何想法 我猜我必须要么找到一个可以使用线程休眠的程序 要么用我不太熟悉的 python 或 c 编
  • 使用 Angular 下载具有动态 src 的脚本

    Angular 提供了通过动态名称动态加载模板的方法ng include 该部分中的内联 JS 和 CSS 可以正常加载 但没有一个好的方法来下载带有动态 url 的脚本 我们需要下载脚本 相对于调用它们的 html 部分的路径 即我们有一
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 可以使用 jQuery 或 Javascript 将图片的特定部分用作链接吗?

    我有这个想法 将图片 而不是文本 的各个部分链接到不同的页面或网站 并且我想在不实际创建不同的照片并将它们彼此靠近的情况下完成 这样看起来就像是一张完整的图片 这里有人知道如何使用 JavaScript 的变体 例如 jQuery 或纯 J
  • 除了更改标题之外,如何在 Firefox 中强制另存为对话框?

    有没有办法在 ff 中强制打开 www example com example pdf 的另存为对话框 我无法更改标题 如果您可以将文件以 Base64 格式输出到客户端 则可以使用 data uri 进行下载 location href
  • 从未用 @flow 标记的导入文件中获取类型定义

    TL DR我怎么告诉flow从未声明的导入模块导入类型定义 flow 加长版 流接缝能够从不使用流语法的文件中派生类型 请参阅示例 示例文件 flow js if Math random lt 0 5 var y hello else va
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • JavaScript 重定向到新窗口

    我有以下代码 它根据下拉列表的值重定向到页面 我如何使其在新窗口中打开 function goto form var index form select selectedIndex if form select options index
  • 音频 blob 的 URL.createObjectURL 在 Firefox 中给出 TypeError

    我正在尝试从创建的音频 blob 创建对象 URLgetUserMedia 该代码在 Chrome 中可以运行 但在 Firefox 中存在问题 错误 当我打电话时stopAudioRecorder 它停在audio player src
  • 跟踪用户何时点击浏览器上的后退按钮

    是否可以检测用户何时单击浏览器的后退按钮 我有一个 Ajax 应用程序 如果我可以检测到用户何时单击后退按钮 我可以显示适当的数据 任何使用 PHP JavaScript 的解决方案都是优选的 任何语言的解决方案都可以 只需要我可以翻译成
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Javascript转换时区问题

    我在转换当前时区的日期时间时遇到问题 我从服务器收到此日期字符串 格式为 2015 10 09T08 00 00 这是中部时间 但是当我使用 GMT 5 中的 new Date strDate 转换此日期时间时 它返回给我的信息如下 这是不
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 如何获取浏览器视口中当前显示的内容

    如何获取当前正在显示长文档的哪一部分的指示 例如 如果我的 html 包含 1 000 行 1 2 3 9991000 并且用户位于显示第 500 行的中间附近 那么我想得到 500 n501 n502 或类似的内容 显然 大多数场景都会比

随机推荐

  • 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