当前位置: 首页 > 知识库问答 >
问题:

按属性值选择元素的XPath

陆晓博
2023-03-14

我有以下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>
//Employee/[@id='4']/text()

我在http://chris.photobooks.com/xml/default.htm上查看了它,它显示xpath无效,不确定问题出在哪里。

共有1个答案

虞安康
2023-03-14

您需要删除[之前的/。谓词([]中的部分)前面不应该有斜杠。此外,要选择Employee元素本身,您应该删除结尾处的/text(),否则只需要选择Employee元素下面的空白文本值。

//Employee[@id='4']

编辑:正如Jens在评论中指出的,//可能会非常慢,因为它会搜索整个文档以查找匹配的节点。如果您正在处理的文档的结构要保持一致,那么最好使用完整路径,例如:

/Employees/Employee[@id='4']
 类似资料:
  • 问题内容: 是否可以通过CSS5的HTML5数据属性(例如)来选择元素? 问题答案: 如果您想使用属性选择器,请确定为什么: 我可以链接到文档中介绍各种可用于各种场景的属性选择器。请注意,尽管自定义数据属性是“新的HTML5功能”, 浏览器通常在支持非标准属性方面没有任何问题,因此您应该能够使用属性选择器对其进行过滤;和 您也不必担心CSS验证,因为CSS不在乎非命名空间的属性名称,只要它们不破坏

  • 问题内容: 在XML文档中,我具有共享相同名称的元素,但是属性的值定义了它是什么类型的数据,并且我想从文档中选择所有具有特定值的元素。我是否需要使用XPath(如果可以,您是否可以建议正确的语法)还是有更优雅的解决方案? 这是一些示例XML: 我想选择类型为的所有子代标签的内容。 PS-我正在尝试使用PHP与Netflix API进行接口-这对我的问题无关紧要,但是如果您想提出一种更好的方法,我非

  • 问题内容: 就像标题所说的那样,是否可以在XPath中选择仅以某个字符串开头但不以同一字符串结尾的元素? 例如,有3个锚元素: 我只想获取以’buy.php /’开头的锚元素。我认为以下内容不会起作用: 我怎样才能做到这一点? 问题答案: http://www.zvon.org/xxl/XSLTreference/Output/function_starts- with.html

  • 问题内容: 是否有一种简单而直接的方法来根据元素的属性选择元素?例如,选择具有命名的数据属性的所有锚,其具有的价值。 我有点不愿意使用或其他属性来存储此类信息,但是我发现根据存储在其中的数据来选择元素要困难得多。 问题答案: $(‘*[data-customerID=”22”]’); 您应该可以省略,但是如果我没有记错的话,这取决于您使用的是哪个jQuery版本,这可能会导致错误的结果。 请注意,

  • 嗨,我有以下XML 标准是只复制“item-name”属性值为TShert、Ball或Bat的位置。所以生成的XML应该看起来像 我正在使用以下XSLT 但这不起作用。你能帮忙吗? 谢谢Nathan

  • 问题内容: 我正在尝试查找具有Attribute的元素。好吧,我可以在Selenium中找到具有Id,tagName,Xpath和所有其他预定义方法的元素。但是,我正在尝试编写一种方法,该方法将给定属性名称和值作为输入专门返回WebElement。 假设XPath不是一个选择,还有其他更好的方法吗? 问题答案: 您可以使用CSS轻松完成此任务。 公式为: 所以如果有的话 您可以使用以下方法找到它: