电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

XPath入門 - XSL教程 - 3

瀏覽:235日期:2022-06-04 14:51:33
什么是XPath
  XPath(可擴(kuò)展路徑) 是給 XSL 轉(zhuǎn)換[XSLT]和 XPointer [XPointer]的共享功能提供一個(gè)共用的句法及語義的結(jié)果。XPath的主要的目是用于對(duì) XML 文檔元件尋址。在支持這個(gè)主要目的的同時(shí),它也為字符串,數(shù)字和布爾的操作提供了基本手段。XPath 使用簡明的、非 XML 句法以便於在 URIs 和 XML 屬性值以內(nèi)使用 XPath,XPath 對(duì) XML 文檔的抽象的、邏輯的結(jié)構(gòu)而非它的表面句法進(jìn)行操作,XPath 的名字源于它在 URL 中用作對(duì) XML 文檔的層次的結(jié)構(gòu)進(jìn)行導(dǎo)航一個(gè)路徑標(biāo)志。
除了用做尋址外,XPath 也被設(shè)計(jì)成以便它有能被用于匹配的一個(gè)自然的子集(測試一個(gè)節(jié)點(diǎn)是否匹配一個(gè)模式);XSLT中描述了 XPath 在這方面的使用。 
  XPath 將一個(gè) XML 文檔建模成為一棵節(jié)點(diǎn)樹,有不同類型的節(jié)點(diǎn),包括元素節(jié)點(diǎn),屬性節(jié)點(diǎn)和正文節(jié)點(diǎn)。XPath 定義了一種方法來計(jì)算每類的節(jié)點(diǎn)的字串值。一些節(jié)點(diǎn)的類型也有名字。XPath 充分支持 XML 命名空間[XML Names]。這樣,節(jié)點(diǎn)的名字被建模成由一個(gè)局城部分和可能為空的命名空間 URI 組成的對(duì);這被稱為擴(kuò)展名。

XPath返回的類型
  1:節(jié)點(diǎn)集合(無序的、無重復(fù)的節(jié)點(diǎn)集合) 
  2:布爾(真或假) 
  3:數(shù)字(一個(gè)浮點(diǎn)數(shù)字) 
  4:字符串(UCS 字符的順序) 
地址路徑
地址路徑是Xpath用于定位的一條語句,基本的語法如下:
/ 選擇XML文檔的根結(jié)點(diǎn) 
/* 選擇根結(jié)點(diǎn)的所有子節(jié)點(diǎn),
*匹配任意子節(jié)點(diǎn) 
/x 選擇根結(jié)點(diǎn)的所有x元素 
//book 選擇根結(jié)點(diǎn)的所有后代節(jié)點(diǎn)中的book元素 
//@id 選擇含有id屬性的子節(jié)點(diǎn) 
para[1] 選擇上下文節(jié)點(diǎn)的第一個(gè) para 孩子
//vendor[@id="id1_2"]/book 選擇符合“屬性id="id1_2"”的所有book元素 
/bib/vendor/book[year>2002] 選擇符合“元素year>"2002"”的所有book元素 
text() 選擇上下文節(jié)點(diǎn)的所有的正文節(jié)點(diǎn)孩子
@name 選擇上下文節(jié)點(diǎn)的 name 屬性
@* 選擇上下文節(jié)點(diǎn)的所有的屬性
*/para 選擇上下文節(jié)點(diǎn)的所有的 para 孫子
/doc/chapter[5]/section[2] 選擇doc的第五個(gè) chapter 的第二個(gè) section
.//para 選擇上下文節(jié)點(diǎn)的 para 元素子孫
para[@type="warning"] 選擇的上下文節(jié)點(diǎn)的所有的有屬性 type 且值為 warning 的 para 孩子
chapter[title="Introduction"] 選擇上下文節(jié)點(diǎn)的 chapter 孩子如果它有一個(gè)或多個(gè) title 孩子且字串值為 Introduction
employee[@secretary and @assistant] 選擇上下文節(jié)點(diǎn)的所有既有 secretary 屬性又有 assistant 屬性的 employee 孩子
chpater[title] 選擇的上下文節(jié)點(diǎn)中有一個(gè)或一個(gè)以上 title 孩子的 chpater 孩子
1:child 是缺省軸。例如,地址路徑 div/para 是 child:iv/child::para 的縮寫。
2:屬性也有縮寫形式: attribute:: 能被縮寫成 @。例如,地址路徑 para[@type="warning"] 為 child::para[attribute::type="warning"] 的縮寫,也就是選擇有 type 屬性且屬性值為 warning 的 para 孩子。
3:// 是 /descendant-or-self::node()/ 的縮寫。例如,//para 是 /descendant-or-self::node()/child::para 的縮寫,因此選擇文檔中所有的 para 元素(即使 para 元素是文檔元素,也會(huì)被 //para 所選擇,因?yàn)槲臋n元素是根節(jié)點(diǎn)的孩子); div//para 是 div/descendant-or-self::node()/child::para 的縮寫,因此將選擇 div 孩子的所有 para 子孫
核心函數(shù)庫
節(jié)點(diǎn)集合函數(shù)
last()返回一個(gè)數(shù)字,該數(shù)字等于從表達(dá)式求值上下文中的上下文大小 
position()函數(shù)返回一個(gè)數(shù)字,該數(shù)字等於從表達(dá)式求值上下文中的上下文位置
count(node-set)函數(shù)返回在參數(shù)node-set中節(jié)點(diǎn)的個(gè)數(shù)
id(object)通過元素的唯一的ID選擇他們
local-name(node-set?)返回一個(gè)節(jié)點(diǎn)的擴(kuò)展名的局域部分
namespace-uri(node-set?)返回依照文檔順序參數(shù)節(jié)點(diǎn)集合中的第一個(gè)節(jié)點(diǎn)的擴(kuò)展名的命名空間 URI,除了元素節(jié)點(diǎn)和屬性節(jié)點(diǎn)外函數(shù) namespace-uri 返回的字符串將為空
name(node-set?)返回一個(gè)字符串,字符串包含一個(gè)QName,它代表依照文檔順序參數(shù)節(jié)點(diǎn)集合中的第一個(gè)節(jié)點(diǎn)的擴(kuò)展名,除了元素節(jié)點(diǎn)和屬性節(jié)點(diǎn)外,由 name 函數(shù)返回的字符串將與 local-name 函數(shù)返回的字符串一樣
字符串函數(shù)
string(object?)函數(shù)將對(duì)象轉(zhuǎn)換成字符.
concat(string, string, string*) 函數(shù)返回它的參數(shù)的聯(lián)結(jié)
starts-with(string, string)如果第一個(gè)字符串參數(shù)以第二個(gè)字符串參數(shù)起頭,starts-with 函數(shù)返回真,否則,返回假
contains(string, string)如果第一個(gè)字符串參數(shù)包含第二個(gè)字符串參數(shù),contains 函數(shù)返回真,否則,返回假
substring-before(string, string)函數(shù)返回第一個(gè)字符串參數(shù)在第二個(gè)參數(shù)首次出現(xiàn)之前的子字符串,或者,如果第一個(gè)字符串參數(shù)不包含第二個(gè)字符串參數(shù)則返回空字符串。例如,substring-before("1999/04/01","/") 返回 1999
substring-before(string, string)函數(shù)返回第一個(gè)字符串參數(shù)在第二個(gè)參數(shù)首次出現(xiàn)之前的子字符串,或者,如果第一個(gè)字符串參數(shù)不包含第二個(gè)字符串參數(shù)則返回空字符串。例如,substring-before("1999/04/01","/") 返回 1999
substring( string , number , number? )函數(shù)返回第一個(gè)字符串參數(shù)從第二個(gè)參數(shù)所指定的位置開始,以第三個(gè)參數(shù)為長度的子字符串。例如, substring("12345",2,3) 返回 "234"。如果沒有第三個(gè)參數(shù),則返回從第二個(gè)參數(shù)所指定的位置開始直到結(jié)束。例如, substring("12345",2) 返回"2345"
string-length( string? )返回字符串中字符的個(gè)數(shù)
normalize-space(string?)函數(shù)返回空白符規(guī)范化 后的參數(shù)字符串,該規(guī)范化是清除領(lǐng)頭及結(jié)尾的空白字以及用一個(gè)空白符替換連續(xù)的空白符
translate(string, string, string)函數(shù)返回第一個(gè)參數(shù)的字符串,其中有在第二個(gè)參數(shù)中出現(xiàn)的字符都被在第三個(gè)參數(shù)中相對(duì)應(yīng)位置的字符所替換。例如,translate("bar","abc","ABC") 返回字符串 BAr。如果,第二個(gè)參數(shù)里的字符在第三個(gè)參數(shù)的相對(duì)應(yīng)位置沒有字符(因?yàn)榈诙€(gè)參數(shù)里的字符串比第三個(gè)參數(shù)的字符串長),那么,第一個(gè)參數(shù)里的那個(gè)字符將被移去。例如,translate("--aaa--","abc-","ABC") 返回 "AAA"。如果在第二個(gè)參數(shù)里的字符出現(xiàn)超過一次,那么,第一次的出現(xiàn)決定替換的字符。如果第三個(gè)參數(shù)里的字符串比第二個(gè)參數(shù)的字符串長, 那么,多余的字符將被忽略
布爾函數(shù)
boolean(object)
not(boolean)
true()
false()
lang(string)
數(shù)字函數(shù)
number(object?)函數(shù)參數(shù)依下列各項(xiàng)轉(zhuǎn)換成數(shù)字
sum(node-set)對(duì)於在參數(shù)節(jié)點(diǎn)集合的每個(gè)節(jié)點(diǎn),sum 函數(shù)返回節(jié)點(diǎn)字串值轉(zhuǎn)換成數(shù)字后的和
floor(number)函數(shù)返回不大於參數(shù)的整數(shù)的最大數(shù) (最接近于正無窮大)
ceiling(number)函數(shù)返回不小於參數(shù)的整數(shù)的最小數(shù) (最接近于負(fù)無窮大)
round(number) 函數(shù)返回最接近于參數(shù)的整數(shù)。如果有兩個(gè)這樣的數(shù)字,那么,返回最接近于正無窮大的那個(gè)。如果參數(shù)是 NaN,那么返回 NaN。如果參數(shù)是正無窮大,那么返回正無窮大。如果參數(shù)是負(fù)無窮大,那么返回負(fù)無窮大。如果參數(shù)是正零,那么返回正零。如果參數(shù)是負(fù)零,那么返回負(fù)零。如果參數(shù)小於零,但大於或等於 -0.5 ,那么返回負(fù)零。
參照規(guī)范
XML See See http://www.w3.org/TR/1998/REC-xml-19980210
XML Nameshttp://www.w3.org/TR/REC-xml-names
XSLT See http://www.w3.org/TR/xslt
部分參照XML 路徑語言(XPath) 版本 1.0
標(biāo)簽: XML/RSS
相關(guān)文章:
主站蜘蛛池模板: 辐射仪|辐射检测仪|辐射巡测仪|个人剂量报警仪|表面污染检测仪|辐射报警仪|辐射防护网 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | Boden齿轮油泵-ketai齿轮泵-yuken油研-无锡新立液压有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 温州中研白癜风专科_温州治疗白癜风_温州治疗白癜风医院哪家好_温州哪里治疗白癜风 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 上海电子秤厂家,电子秤厂家价格,上海吊秤厂家,吊秤供应价格-上海佳宜电子科技有限公司 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 净化板-洁净板-净化板价格-净化板生产厂家-山东鸿星新材料科技股份有限公司 | B2B网站_B2B免费发布信息网站_B2B企业贸易平台 - 企资网 | 卡诺亚轻高定官网_卧室系统_整家定制_定制家居_高端定制_全屋定制加盟_定制家具加盟_定制衣柜加盟 | 食品无尘净化车间,食品罐装净化车间,净化车间配套风淋室-青岛旭恒洁净技术有限公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 科威信洗净科技,碳氢清洗机,超声波清洗机,真空碳氢清洗机 | PU树脂_水性聚氨酯树脂_聚氨酯固化剂_聚氨酯树脂厂家_宝景化工 | 迪威娱乐|迪威娱乐客服|18183620002 | 锤式粉碎机,医药粉碎机,锥式粉碎机-无锡市迪麦森机械制造有限公司 | 山东限矩型液力偶合器_液力耦合器易熔塞厂家-淄博市汇川源机械厂 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 东莞市超赞电子科技有限公司 全系列直插/贴片铝电解电容,电解电容,电容器 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 长江船运_国内海运_内贸船运_大件海运|运输_船舶运输价格_钢材船运_内河运输_风电甲板船_游艇运输_航运货代电话_上海交航船运 | 电子海图系统-电梯检验系统-智慧供热系统开发-商品房预售资金监管系统 | sus630/303cu不锈钢棒,440C/430F/17-4ph不锈钢研磨棒-江苏德镍金属科技有限公司 | 农业四情_农业气象站_田间小型气象站_智慧农业气象站-山东风途物联网 | 邢台人才网_邢台招聘网_邢台123招聘【智达人才网】 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 济南菜鸟驿站广告|青岛快递车车体|社区媒体-抖音|墙体广告-山东揽胜广告传媒有限公司 | 蔬菜配送公司|蔬菜配送中心|食材配送|饭堂配送|食堂配送-首宏公司 | 钢托盘,铁托盘,钢制托盘,镀锌托盘,饲料托盘,钢托盘制造商-南京飞天金属13260753852 | 数显恒温油浴-电砂浴-高温油浴振荡器-常州迈科诺仪器有限公司 | 气力输送_输送机械_自动化配料系统_负压吸送_制造主力军江苏高达智能装备有限公司! | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 河北凯普威医疗器材有限公司,高档轮椅系列,推车系列,座厕椅系列,协步椅系列,拐扙系列,卫浴系列 | 有机肥设备生产制造厂家,BB掺混肥搅拌机、复合肥设备生产线,有机肥料全部加工设备多少钱,对辊挤压造粒机,有机肥造粒设备 -- 郑州程翔重工机械有限公司 | elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 |