通过属性值选择元素的 XPath

2023-11-27

我有以下 XML。

<?xml version="1.0" encoding="UTF-8"?>
<Employees>
    <Employee id="3">
        <age>40</age>
        <name>Tom</name>
        <gender>Male</gender>
        <role>Manager</role>
    </Employee>
    <Employee id="4">
        <age>25</age>
        <name>Meghna</name>
        <gender>Female</gender>
        <role>Manager</role>
    </Employee>
</Employees>

我想选择 id="4" 的 Employee 元素。

我正在使用下面的 XPath 表达式,它不返回任何内容。

//Employee/[@id='4']/text()

我检查过http://chris.photobooks.com/xml/default.htm它说无效的xpath,不知道问题出在哪里。


您需要删除/之前[。谓词(其中的部分[..]) 前面不应有斜杠 - 它们直接位于与其关联的节点选择器之后。

另外,要选择 Employee 元素本身,您应该省略/text()在最后。否则,您只需选择 Employee 元素正下方的空白文本值。

//Employee[@id = '4']

还有一件事需要注意://可能会非常慢,因为它会在整个文档中搜索匹配的节点。如果您正在使用的文档的结构要保持一致,那么您最好使用更明确的路径,例如:

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

通过属性值选择元素的 XPath 的相关文章

随机推荐

  • 如何将数字字符串排序为数字?

    如果你有这样的字符串 file 0 file 1 file 2 file 3 file 4 file 5 file 6 file 11 如何对它们进行排序 以便 file 11 不会出现在 file 1 之后 而是出现在 file 6 之后
  • List<> 元素是否按顺序位于堆状数组中?

    我正在学习C 基本上知道数组和数组之间的区别List最后一个是通用的 可以动态增长 但我想知道 are List元素顺序位于堆状数组中 还是每个元素 随机 位于不同位置 如果这是真的 这是否会影响内存访问和数据检索的速度 如果这是真的 这就
  • 函数内的“static”关键字?

    我正在查看 Drupal 7 的源代码 发现了一些我以前没有见过的东西 我在 php 手册中做了一些初步的查找 但它没有解释这些示例 关键字是什么static对函数内的变量做什么 function module load all boots
  • Vb.net随机数生成器多次生成相同的数字

    我有这个程序从文件中生成名字和姓氏 当我运行该程序时 我在三个文本框中输入信息 前两个是工资低和高 salary1 text salary2 text 最后一个是我想要的 份数 copies text 当我在文本中输入诸如10之类的数字时它
  • 属性-maven-插件:加载属性文件时出错

    我想将 pom xml 中的所有属性提取到属性文件中 这些是常见的属性 如依赖版本 插件版本和目录 我正在使用properties maven plugin 但它没有按照我想要的方式工作 我的 pom xml 的重要部分
  • match 如何在其怀抱中使用 `continue` 进行编译?

    我正在阅读 Rust 编程语言 一书 我偶然发现了一个简单的表达式 let guess u32 match guess trim parse Ok num gt num Err gt continue 如何match手臂上有不同的表情 例如
  • 如何在 Xcode 中查找 print() 或 NSLog() 控制台输出的来源

    我不确定这是否可能 下面是一个示例情况 有些东西正在打印到我的控制台 但我不知道它来自代码中的哪里 我使用 Xcode 中的 Finder 对 NSLog 和 print 等术语进行了快速搜索 没有出现任何相关的内容 Xcode 有什么快速
  • 如何为谷歌MapView制作具有视差滚动效果的自定义CoordinatorLayout.Behavior?

    我尝试为谷歌制作视差滚动效果MapView and RecycleView using CoordinatorLayour 因此 根据在网上找到的一些教程 我编写了以下代码 布局
  • 如何在 github 主页中删除“您贡献的存储库”

    我已向存储库提交了一个新问题 之后 我的 github 主页中始终会出现一个通知选项卡 我只是不想删除这个烦人的存储库 但我无法弄清楚 你有没有尝试过https docs github com en github setting up an
  • 如何猴子修补`__call__`方法?

    我似乎无法猴子修补 call 类实例的方法 是的 我只想修补单个实例 而不是全部 以下代码 class A object def test self return TEST def call self return EXAMPLE a A
  • dataAdapter .Fill 和 .Update 的比较

    我已经阅读了 MSDN 资源和几个论坛 但仍然不明白这两者之间有什么区别dataAdapter Fill and dataAdapter Update 我尝试使用它们从我的程序中更新数据库并且它有效 但是当我尝试删除update 功能 它仍
  • Zend 和 .htaccess

    我的默认 zend 应用程序具有此默认结构 zend webroot application config library public htaccess index php 默认 htaccess 通过 public index php
  • Android上不确定水平进度条的样式

    确定进度条的样式很容易 有很多教程可以实现这一点 这是我正在使用的
  • 通过 Google App Engine 的 Google Drive API

    我正在尝试通过以下方式使用 Google Drive API应用程序身份Google App Engine 提供的界面 这基本上允许我的网络应用程序与 Google 的 API 进行通信从服务器到服务器 我不需要我的用户登录 我只需要显示我
  • MapReduce 的随机播放和排序

    我通读了权威指南和网络上的其他一些链接 包括here 我的问题是 洗牌和排序到底发生在哪里 根据我的理解 它们发生在映射器和减速器上 但一些链接提到改组发生在映射器上 排序发生在减速器上 有人可以确认我的理解是否正确吗 如果没有 他们可以提
  • Android 应用程序中的 ExceptionInInitializerError?

    在我的 Android 应用程序中 WebView 活动类具有以下行 webView addJavascriptInterface new JSInterface this Android 在 JSInterface 类中 我正在初始化 G
  • 视图以模态视图动画显示,而不是显示(推送)动画

    我最近将我的应用程序从 iOS 8 3 更新到了 iOS 9 在修复了代码的各种错误后 当我注意到以下问题时 我设法编译应用程序并运行它 当我执行segue单击时 例如 UIButton 加载了segue的视图会出现模态视图的动画 从底部滑
  • C 语言中的 deflate 和 inflate (zlib.h)

    我正在尝试实现 zlib h deflate 和 inflate 函数来压缩和解压缩 char 数组 而不是文件 我想知道以下语法是否正确 我是否遗漏了某些内容或错误地定义了某些内容 char a 50 Hello World char b
  • NPM版本中如何表示内部版本号?

    我想在 package json 中将内部版本号附加到我的项目 我正在寻找最好的方法来做到这一点 我发现如果前面有 node semver 会将字符串识别为内部版本号 例如 这将是构建 123 1 0 0 123 但是 NPM 版本模块也接
  • 通过属性值选择元素的 XPath

    我有以下 XML