XPath简明介绍

简介:

XPath 使用路径表达式来选取 XML 文档中的节点或节点集。节点是通过沿着路径 (path) 或者步 (steps) 来选取的。

下面列出了最有用的路径表达式:

  • nodename:选取此节点的所有子节点。
  • /:从根节点选取。
  • //:从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
  • .:选取当前节点。
  • ..:选取当前节点的父节点。

例如有下面一段XML:

<?xml version="1.0" encoding="utf-8"?>
<Articles>
  <Article>
    <Title>
      在ASP.NET中使用Highcharts js图表</title>
      <Url>http://zhoufoxcn.blog.51cto.com/792419/537324</Url>
      <CreateAt type="en">
        2011-04-07</price>
      </Article>
  <Article>
    <Title lang="eng">
      Log4Net使用详解(续)</title>
      <Url>http://blog.csdn.net/zhoufoxcn/archive/2010/11/23/6029021.aspx</Url>
      <CreateAt type="zh-cn">
        2010年11月23日</price>
      </Article>
  <Article>
    <Title>
      J2ME开发的一般步骤</title>
      <Url>http://blog.csdn.net/zhoufoxcn/archive/2011/06/12/6540223.aspx</Url>
      <CreateAt type="zh-cn">
        2011年06月12日</price>
      </Article>
  <Article>
    <Title lang="eng">
      PowerDesign高级应用</title>
      <Url>http://zhoufoxcn.blog.51cto.com/792419/166415</Url>
      <CreateAt type="zh-cn">
        2007-09-08</price>
      </Article>
</Articles>

针对上面的XML文件,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

  • /Articles/Article[1]:选取属于Articles子元素的第一个Article元素。
  • /Articles/Article[last()]:选取属于Articles子元素的最后一个Article元素。
  • /Articles/Article[last()-1]:选取属于Articles子元素的倒数第二个Article元素。
  • /Articles/Article[position()<3]:选取最前面的两个属于 bookstore 元素的子元素的Article元素。
  • //title[@lang]:选取所有拥有名为lang的属性的title元素。
  • //CreateAt[@type='zh-cn']:选取所有CreateAt元素,且这些元素拥有值为zh-cn的type属性。
  • /Articles/Article[Order>2]:选取Articles元素的所有Article元素,且其中的Order元素的值须大于2。
  • /Articles/Article[Order<3]/Title:选取Articles元素中的Article元素的所有Title元素,且其中的Order元素的值须小于3。

转自:http://zhoufoxcn.blog.51cto.com/792419/595344

如果认为此文对您有帮助,别忘了支持一下哦!

作者: 齐飞
声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。

转载:http://www.cnblogs.com/youring2/archive/2013/04/18/3028639.html
目录
相关文章
|
Linux Perl
centos6 yum源不能使用
centos6 yum源不能使用
19205 0
|
存储 分布式数据库 API
技术好文:VisualC++查看文件被哪个进程占用
技术好文:VisualC++查看文件被哪个进程占用
|
监控 Unix Shell
Nightingale——夜莺监控系统部署邮件告警系统【三】
Nightingale——夜莺监控系统部署邮件告警系统【三】
236 1
Nightingale——夜莺监控系统部署邮件告警系统【三】
|
9月前
|
人工智能 负载均衡 搜索推荐
谷歌发布双思维AI Agent:像人类一样思考,重大技术突破!
谷歌近日推出基于“快慢思维”理论的双思维AI Agent系统,模仿人类大脑的两种思维模式:快速直观的Talker(系统1)和深思熟虑的Reasoner(系统2)。Talker负责日常对话与快速响应,Reasoner则处理复杂推理任务。该系统模块化设计,灵活高效,已在睡眠教练等场景中展现应用潜力,但仍面临工作负载平衡与推理准确性等挑战。论文详情见:https://arxiv.org/abs/2410.08328v1
322 1
|
10月前
|
人工智能 机器人 API
AppFlow:无代码部署Dify作为钉钉智能机器人
本文介绍如何通过计算巢AppFlow完成Dify的无代码部署,并将其配置到钉钉中作为智能机器人使用。首先,在钉钉开放平台创建应用,获取Client ID和Client Secret。接着,创建消息卡片模板并授予应用发送权限。然后,使用AppFlow模板创建连接流,配置Dify鉴权凭证及钉钉连接凭证,完成连接流的发布。最后,在钉钉应用中配置机器人,发布应用版本,实现与Dify应用的对话功能。
2144 7
AppFlow:无代码部署Dify作为钉钉智能机器人
|
11月前
|
JavaScript 前端开发 iOS开发
ios样式开关按钮jQuery插件
ios样式开关按钮jQuery插件
147 7
|
缓存 JavaScript 前端开发
qiankun 微应用vue接入到基座
qiankun 微应用vue接入到基座
Python编程实战:如何将列表组装成一棵树结构
本文介绍了如何在Python中将列表转换为树结构。首先定义`TreeNode`类表示节点,包含值和子节点列表。然后,通过`list_to_tree`函数递归地将列表转为树。此外,还提供了添加和删除节点的方法。文章旨在帮助读者理解和操作树结构,以解决实际编程问题。
Python编程实战:如何将列表组装成一棵树结构
|
持续交付 开发工具 Swift
【Swift开发专栏】Swift与第三方库和框架的集成
【4月更文挑战第30天】本文探讨了Swift中集成第三方库和框架的策略,包括选择有功能需求、社区支持、丰富文档和合适许可证的库。集成步骤涉及使用CocoaPods等工具安装,`import`导入库,遵循错误处理和性能优化。建议遵循代码组织、单一职责原则,做好错误处理和日志记录,使用版本控制和CI/CD,以提升项目稳定性和用户体验。
458 0
|
索引
Elasticsearch exception [type=illegal_argument_exception, reason=index [.1] is the write index for data stream [slowlog] and cannot be deleted]
在 Elasticsearch 中,你尝试删除的索引是一个数据流(data stream)的一部分,而且是数据流的写入索引(write index),因此无法直接删除它。为了解决这个问题,你可以按照以下步骤进行操作:
1241 0