`
smiky
  • 浏览: 261336 次
  • 性别: Icon_minigender_1
  • 来自: 天门
社区版块
存档分类
最新评论

xpath的一点笔记

阅读更多

<?xml version="1.0" encoding="UTF-8"?>
<root>
    <person lang="cn">
        <name>smiky</name>
        <age>20</age>
        <sex>boy</sex>
    </person>
    <person lang="en">
        <name multiple="true">欧阳疯</name>
        <age>24</age>
        <sex>girl</sex>
    </person>
</root>
<!--
*XPath的七种节点类型:
*元素,属性,文本,文档节点(即根节点),命名空间,注释,处理指令
*
*节点关系:
*父、子、兄弟、先辈、后代
*
*Xpath常用符号:
*/ 从根节点开始选
*// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置 (example://name,会选择两个name元素,不考虑name元素出现在那)
*. 当前节点
*..父节点
*| 表示或 (example: //person[1] | person[2] 会选择两个person)
*@ 选取属性 (example: //@multiple 会选取<name multiple="true">欧阳疯</name>中的值true)
*      * 用于匹配任意元素
*      @*用于匹配任意属性
*node()匹配任意节点(//person/age/node())
*text()匹配文本节点(//person/age/text())
//node()与text()相关于一个节点来使用
*last()匹配最后一个节点 (//person[last()-1]匹配倒数第二个person)
*position()匹配某个位置(如//person[position=1]选择第一个person)
//last()与position看样子只能在谓语中使用
*
*
*XPath的12个轴:
*ancestor 父辈(包括父节点及祖父等)
*ancestor-or-self 相对于ancestor多了它自身
*descentdant 后辈(包括子节点及孙节点)
*descentdant-or-selt 相对于descendant多了它自身
*attribute 选择当前节点的属性
*child 选取当前节点的子节点
*parent 选择当前节点的父节点
*self 选择当前节点
*namesapce 选取当前节点的所有命名空间节点
*following 选择当前节点标签结束之后的所有节点(如//person[1]/following::*,不仅会选第二个person,还会选person[2]中的name,age,sex)
*preceding 与following相反,选择当前节点开始之前的所有节点
*preceding-sibling 选择preceding的兄弟节点
*
*轴的使用:
*//person[2]/ancestor-or-self::*[1]
*                 轴         ::轴中对应的节点[谓语(进一步选择)]  
*
*XPath运算符
*|,+,-,div(除),mod,*(乘法),>,>=,<,<=,=,!=,and,or
*运算符好像只能用在谓语里面对节点进行进一步的过滤

//person[age>=20 and age=24] 根据子元素的值选择
//person[@lang="cn"] 根据属性选择

    1. /bookstore/book/@category
    2. /bookstore/book[@category]
这两者之间的区别:1选取的是一个属性节点,2选取的是具有category属性的book,2中属性只是谓语,用于限定选取结果


XSLT常用元素:
<xsl:template match="/"></xsl:template>
<xsl:value-of select=""/>
<xsl:for-each select="" ></xsl:for-each>
<xsl:sort select=""/>
<xsl:if test=""></xls:if>
<xsl:choose>
    <xsl:when test="age>23"></xsl:when>
    <xsl:when test="age>20"></xsl:when>
    <xsl:otherwise></xsl:otherwise>
</xsl:choose>
这里相当于:
if(age>23){

}else if(age>20){

}else{

}

<xsl:apply-templates />


XQuery:
XQuery 使用函数来提取 XML 文档中的数据。
doc() 用于打开 "books.xml" 文件:
doc("books.xml")/bookstore/book[price>30],XQuery 使用谓语来限定从 XML 文档所提取的数据

FLWOR:
for 语句把 bookstore 元素下的所有 book 元素提取到名为 $x 的变量中。(测试过,变量名前要加$,不加报错)
where 语句选取了 price 元素值大于 30 的 book 元素。
order by 语句定义了排序次序。将根据 title 元素进行排序。
return 语句规定返回什么内容。在此返回的是 title 元素。

for, let, where, order by, return
for $book in doc("books.xml")/bookstore/book
where $book/price>30
order by $book/price
return $book/title

for $book in doc("books.xml")/bookstore/book
order by $book/price
return $book/title

<ul>
{
for $x in doc()/bookstore/book/title
order by $x
return <li>{data($x)}</li>//data($x)用于获取$x的值,必须用{}括起来,不然就会原样输出data($x)
}
</ul>
可以看出XQuery用{}来区分代码与非代码部分(如同JSP中的<%%>)
当代码与非代码连接时一定要用{}括起代码部分,否则XQuery将全部当成非代码处理(即当字成符),对于只有代码的话不用括起来

XQuery 的基础语法规则:
一些基本的语法规则:
•XQuery 对大小写敏感
•XQuery 的元素、属性以及变量必须是合法的 XML 名称。
•XQuery 字符串值可使用单引号或双引号。
•XQuery 变量由 “$” 并跟随一个名称来进行定义,举例,$bookstore
•XQuery 注释被 (: 和 :) 分割,举例,(: XQuery 注释 :)

XQuery注意事项:
XQuery返回的要么只有数据,要么是有正常开始结束标签的字符串(<abc>123</abc>,这样<abc>123会报错)
可以出现这种结果:
<abc>123</abc>
    123
<abc>123</123>

并且在只有代码时不能用{}括着代码
如:{doc()/bookstore/book}会报错
-->








分享到:
评论

相关推荐

    css选择器(selector) xPath的选择器

    去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记,今天是CSS的选择器,以后还有一部分xPath的选择器。今天的笔记中包括44个选择器,基本涵盖了CSS 2和CSS 3的所有规定

    爬虫项目Music-main开发笔记

    在“爬虫项目Music-main开发笔记”中,我们可以探索到一系列关于网络爬虫开发的知识点。网络爬虫是一种自动化程序,用于抓取互联网上的信息,通常用于数据分析、搜索引擎索引和内容聚合。在这个项目中,我们可能涉及...

    net学习笔记及其他代码应用

    答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生) 30.简要谈一下您对微软.NET 构架下remoting和webservice两项技术的...

    jquery CSS选择器笔记

    去年我学jQuery的时候,曾经做过一点选择器(selector)的笔记。 这几天拿出来看了一下,发现很多都忘记了。所以,我决定把它们贴在这里,方便以后查看。这对其他朋友应该也是有用的,毕竟选择器是制作网页效果的第...

    多层电梯自动化系统:基于TIA Portal与S7-1200的PLC程序组态仿真及应用 自动化控制

    内容概要:本文介绍了基于西门子TIA Portal平台和S7-1200控制器的三层电梯PLC程序组态仿真全过程。文中详细描述了不同楼层间电梯响应机制的基本逻辑和复杂逻辑处理方法,以及如何利用梯形图(Ladder Logic)或功能块图(Function Block Diagram)编写程序代码。此外,还涵盖了WinCC软件用于创建仿真界面的具体操作,包括楼层指示器、按钮和呼梯显示器的设计与实现。最后,通过对整个项目的总结,分享了项目实施过程中的关键技术和实践经验。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些希望深入了解PLC编程及其仿真技术的人群。 使用场景及目标:适用于教学培训、工程项目规划和技术研究等领域。主要目的是帮助读者掌握PLC控制系统的设计思路,提高解决实际工程问题的能力。 其他说明:文中强调了编程技能、逻辑思维能力和对客户需求及设备原理深刻理解的重要性,这些都是成功完成此类项目不可或缺的因素。

    K003-调试工具-旧-TcpIpDebug-TCP通讯.zip

    K003_调试工具_旧-TcpIpDebug-TCP通讯.zip

    基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码

    基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码,个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+GCN+BERT的中文文本分类Python实现源码基于CNN+RNN+G

    机器学习训练数据 真人与机器识别

    机器学习训练数据 真人与机器识别

    实训商业源码-最新PHP交友盲盒系统源码-论文模板.zip

    实训商业源码-最新PHP交友盲盒系统源码-论文模板.zip

    玫瑰叶子病害检测数据集VOC+YOLO格式3699张4类别

    玫瑰叶子病害检测数据集VOC+YOLO格式3699张4类别.docx

    永磁同步电机单矢量及多矢量模型预测电流控制仿真研究

    内容概要:本文详细介绍了基于单矢量及多矢量模型的永磁同步电机电流预测控制仿真模型。首先,通过对永磁同步电机(PMSM)的特性分析,建立了定子电流预测模型,用于预测不同定子电压激励作用下的电流响应。接着,文章阐述了电流环输出的计算方法以及通过价值函数在线优化来选择最优控制结果。此外,还探讨了双矢量、三矢量及改进三矢量模型的应用及其优势,强调了这些模型在提高电流控制精度和适应复杂运行环境方面的潜力。最后,指出预测电流控制的优势在于其实现了解耦控制并能提供最优控制结果。 适合人群:从事电机控制系统研究的技术人员、高校相关专业师生、自动化工程领域的研究人员。 使用场景及目标:适用于希望深入了解永磁同步电机电流控制技术的研究人员和技术开发者,旨在提升电机控制系统的效率和精度。 其他说明:文中不仅提供了理论分析,还包括具体的建模方法和优化策略,有助于读者全面掌握永磁同步电机电流预测控制的关键技术和应用场景。

    基于python实现的语音情绪分析+源码+项目文档(毕业设计&课程设计&项目开发)

    基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 基于python实现的语音情绪分析+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档

    实训商业源码-源码资源站emlog模板-论文模板.zip

    实训商业源码-源码资源站emlog模板-论文模板.zip

    价值6000刀的新版Ai企业级系统去授权完美运行

    Al企联系统去授权版新鲜出炉 授权了一款市面上新出的AI企联系统 整体感觉页面还算不错,功能也还行,没有公众号也可以完美搭建 好像是全开源,可随意二开,我也没太注意。 项目uniapp开发的,支持3.5 4.0 Mj 此套系统5端适配,Web+H5+微信小程序+抖音小程序+双端APP,支持流量主! 好像有能力的快手小程序那些也可以上线。 我没有搭建,只在本地运行了一下,下面的演示站也是官方的 所以凑乎的看吧。自己有能力的可以二开,UI后台也可以自己改。 官方部署文档:https://wisestai.feishu.cn/docx/Ug17d9Iq0o878ax41uDckFbTnxg

    【搜索引擎优化】搜索引擎使用指南:关键词选择、功能利用、信息评估及隐私安全注意事项综述

    内容概要:本文主要介绍了在使用搜索引擎时需要注意的事项,以帮助用户更高效、准确地获取信息。首先强调了关键词的选择与优化,包括使用精准关键词、尝试不同关键词组合以及排除无关词。其次,阐述了搜索引擎功能的利用,如高级搜索选项、语音搜索与图像搜索和垂直搜索引擎的使用。然后,从来源可靠性、内容相关性和信息时效性三个方面讲述了信息评估与筛选的重要性。接着,提醒用户注意隐私与安全,如保护个人信息和防范网络诈骗。最后,鼓励用户持续学习与优化搜索技巧,如学习新的搜索技巧并根据搜索结果反馈及时调整策略。; 适合人群:所有需要使用搜索引擎查找信息的人群,尤其是对搜索技巧有一定需求的学生、研究人员和职场人士。; 使用场景及目标:①提高搜索效率,减少无效信息的干扰;②确保搜索结果的可靠性和时效性;③保护个人隐私和安全;④掌握更多搜索技巧和方法。; 其他说明:本文不仅提供了具体的搜索技巧,还强调了信息评估的重要性,提醒用户在搜索过程中保持批判性思维,确保获取的信息既准确又可靠。同时,鼓励用户不断学习新的搜索技巧,适应搜索引擎的变化和发展。

    FactoryIO十字机械手组装工作站仿真实验程序——基于梯形图的工业自动化入门教程 PLC编程

    内容概要:本文介绍了如何使用梯形图编写程序来控制FactoryIO中的十字机械手组装工作站。主要内容涵盖软件环境配置(TIA Portal V16 和 FactoryIO 2.4)、程序逻辑设计以及具体的功能实现,如皮带的防堵、避让、分流等功能。文中还提供了一些简化的梯形图代码示例及其详细注释,帮助初学者更好地理解和掌握编程技巧。 适合人群:对工业自动化感兴趣的初学者,尤其是那些希望快速上手梯形图编程的人群。 使用场景及目标:本教程旨在引导读者从零开始搭建一个完整的十字机械手组装工作站仿真实验系统,使他们能够熟悉工业自动化编程的基本流程和技术要点。 其他说明:文章不仅提供了理论指导,还包括具体的实践操作步骤,鼓励读者亲自动手尝试,从而加深对所学知识的理解。

    基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)

    基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目),个人经导师指导并认可通过的高分设计项目,评审分98分,项目中的源码都是经过本地编译过可运行的,都经过严格调试,确保可以运行!主要针对计算机相关专业的正在做大作业、毕业设计的学生和需要项目实战练习的学习者,资源项目的难度比较适中,内容都是经过助教老师审定过的能够满足学习、使用需求,如果有需要的话可以放心下载使用。 基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(高分项目)基于知识图谱的电影推荐系统的Python毕业设计项目源码(

    dataset2-master-0518.zip本数据集包含:12,500张图像,4种不同的细胞类型,可以用来检测和分类血细胞类型

    本数据集包含:12,500张图像,4种不同的细胞类型,可以用来检测和分类血细胞类型;本数据集包含:12,500张图像,4种不同的细胞类型,可以用来检测和分类血细胞类型

    电力电子领域4mos结构两相交错并联Buck-Boost变换器仿真及其三种控制方式分析 MatlabSimulink

    内容概要:本文详细介绍了基于4mos结构的两相交错并联Buck/Boost变换器的仿真研究。首先概述了此类变换器的基本构造和工作原理,接着重点讨论了三种不同的控制方式——开环控制、电压单环控制以及电压电流双闭环控制。文中不仅解释了各控制方式的工作机制,还对其连接方法进行了具体指导。实验结果显示,在这三种控制方式中,双闭环控制模式表现出色,尤其在电感电流均流方面效果显著,从而提高了系统的整体效率和稳定性。此外,文章还简要提及了一种单向结构(含两个MOSFET和两个二极管)的变换器,并将其与4mos结构进行了对比。最后,作者强调了matlab/simulink/plecs等仿真软件对于理解和优化这类变换器的重要价值。 适用人群:从事电力电子相关领域的研究人员和技术人员,尤其是那些希望深入了解Buck-Boost变换器内部运作机制的人士。 使用场景及目标:适用于需要评估不同控制策略对Buck-Boost变换器性能影响的研究项目;旨在帮助工程师选择最适合实际应用需求的设计方案。 其他说明:文中提供的仿真数据和结论有助于推动电力电子技术的发展,为未来更高性能的电源转换设备的研发提供理论依据。

    PHP微信抽奖系统源码.zip

    PHP微信抽奖系统源码

Global site tag (gtag.js) - Google Analytics