Marklogic学习 —— XQuery语法基础3

前言: 接上一篇的介绍,本节研究一下Path,路径表达式。

简单的路径表达式

表达式说明
doc(“catalog.xml”)/catalog返回catalog为根元素的文档
doc(“catalog.xml”)//product返回所有product元素
doc(“catalog.xml”)//product/@dept返回product元素的dept属性
doc(“catalog.xml”)/catalog/*返回catalog的所有子元素

带命名空间

查询需要显示说明命名空间:

declare namespace prod="http://marklogic.com/prod";
doc("/product/product_ns.xml")//prod:name

简写语法

原始写法简化写法
child::productproduct
child::**
seld::node().
attribute::dept@dept
descendant::product.//product
child::product/descendant::nameproduct//name
parent::node()/number../number

复杂路径表达式

表达式基于doc(“catalog.xml”)/catalog/

表达式说明
proruct/(numbername)
product/(* except number)返回product下除了number子元素
product/(if)(desc) then desc else name遍历product元素,返回desc或者name节点
product/substring(name,1,10)product的子节点name进行函数操作

带条件的路径表达式

表达式基于doc(“catalog.xml”)/catalog/

表达式说明
product[name=”连衣裙”]返回匹配nameproduct元素
product[number <10000]返回匹配numberproduct元素
product[@dept=”南极人”]返回匹配属性deptproduct元素
product[desc]返回含有子节点descproduct元素
product[@dept]返回含有属性deptproduct元素

带位置的路径表达式

表达式基于doc(“catalog.xml”)/catalog/

表达式说明
product[2]返回catalog的第二个product子节点
product[position() = 2]同上
product[position() > 1]返回catalog的第一个product子节点之后的元素
product[last()-1]返回catalog的倒数第二个product子节点
product[last()]返回catalog的最后一个product子节点
*[2]返回catalog的第二个子节点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cj96248

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值