XPath學習:軸(5)——descendant-or-self

XPath 是一門在 XML 文檔中查找信息的語言。XPath 可用來在 XML 文檔中對元素和屬性進行遍歷。

???? XPath 是 W3C XSLT 標準的主要元素,并且 XQuery 和 XPointer 同時被構建于 XPath 表達之上。

???? 推薦一個挺不錯的網站:http://www.zvon.org/xxl/XPathTutorial/General_chi/examples.html? 里面有很不錯的例子,下面的例子中紅色字體表示使用對應語法獲取的元素(或屬性)。

???? XPath軸(XPath Axes)可定義某個相對于當前節點的節點集:

???? 1、child? 選取當前節點的所有子元素

???? 2、parent? 選取當前節點的父節點

???? 3、descendant 選取當前節點的所有后代元素(子、孫等)

???? 4、ancestor? 選取當前節點的所有先輩(父、祖父等)

???? 5、descendant-or-self? 選取當前節點的所有后代元素(子、孫等)以及當前節點本身

???? 6、ancestor-or-self? 選取當前節點的所有先輩(父、祖父等)以及當前節點本身

???? 7、preceding-sibling 選取當前節點之前的所有同級節點

???? 8、following-sibling 選取當前節點之后的所有同級節點

???? 9、preceding?? 選取文檔中當前節點的開始標簽之前的所有節點

???? 10、following?? 選取文檔中當前節點的結束標簽之后的所有節點

???? 11、self? 選取當前節點

???? 12、attribute? 選取當前節點的所有屬性

???? 13、namespace 選取當前節點的所有命名空間節點

?

???? descendant-or-self跟descendant類似,多了節點本身。

???? /AAA/BBB/descendant-or-self::*??? 選擇/AAA/BBB本身及所有后代元素

?? <AAA>?
???? <BBB>?
????????? <DDD>?
?????????????? <CCC>?
??????????????????? <DDD/>?
??????????????????? <EEE/>?
?????????????? </CCC>?
????????? </DDD>?
???? </BBB>?
???? <CCC>?
????????? <DDD>?
?????????????? <EEE>?
??????????????????? <DDD>?
???????????????????????? <FFF/>?
??????????????????? </DDD>?
?????????????? </EEE>?
????????? </DDD>?
???? </CCC>

????? //CCC/descendant-or-self::*??? 選擇CCC的所有后代元素及本身

?? <AAA>?
???? <BBB>?
????????? <DDD>?
?????????????? <CCC>?
??????????????????? <DDD/>?
??????????????????? <EEE/>?
?????????????? </CCC>?
????????? </DDD>?
???? </BBB>?
???? <CCC>?
????????? <DDD>?
?????????????? <EEE>?
??????????????????? <DDD>?
???????????????????????? <FFF/>?
??????????????????? </DDD>?
?????????????? </EEE>?
????????? </DDD>?
???? </CCC>?
? </AAA>

轉載于:https://www.cnblogs.com/zhaozhan/archive/2009/09/10/1563733.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/379544.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/379544.shtml
英文地址,請注明出處:http://en.pswp.cn/news/379544.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux設備驅動開發---平臺設備驅動程序

文章目錄1 平臺驅動程序2 平臺設備2.1 資源和平臺數據1 設備配置---廢棄的舊方法資源平臺數據聲明平臺設備2 設備配置---推薦的新方法3 設備、驅動程序和總線匹配OF風格ACPIID表匹配匹配平臺設備的名字和平臺驅動的名字平臺設備和平臺驅動程序如何匹配4 Platfrom架構驅動程序有…

標題:乘積尾零

標題&#xff1a;乘積尾零 如下的10行數據&#xff0c;每行有10個整數&#xff0c;請你求出它們的乘積的末尾有多少個零&#xff1f; 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594 9937 1173 6866 3397 4759 7557 3070…

Robots.txt指南

Robots.txt指南當搜索引擎訪問一個網站時&#xff0c;它首先會檢查該網站的根域下是否有一個叫做robots.txt的純文本文件。Robots.txt文件用于限定搜索引擎對其 網站的訪問范圍&#xff0c;即告訴搜索引擎網站中哪些文件是允許它進行檢索(下載)的。這就是大家在網絡上常看到的“…

fwrite函數的用法示例_C語言中的fwrite()函數(帶有示例)

fwrite函數的用法示例C中的fwrite()函數 (fwrite() function in C) Prototype: 原型&#xff1a; size_t fwrite(void *buffer, size_t length, size_t count, FILE *filename);Parameters: 參數&#xff1a; void *buffer, size_t length, size_t count, FILE *filenameRetu…

標題:遞增三元組

標題&#xff1a;遞增三元組 給定三個整數數組 A [A1, A2, … AN], B [B1, B2, … BN], C [C1, C2, … CN]&#xff0c; 請你統計有多少個三元組(i, j, k) 滿足&#xff1a; 1 < i, j, k < NAi < Bj < Ck 【輸入格式】 第一行包含一個整數N。 第二行包含N個整…

伙伴算法、slab機制、內存管理函數

文章目錄1 伙伴算法頁框操作alloc_pages()2 slabslab機制要解決的問題使用高速緩存3 內存管理函數kmallockzallocvmallocvzalloc區別參考文章內核使用struct page結構體描述每個物理頁&#xff0c;也叫頁框。內核在很多情況下&#xff0c;需要申請連續的頁框&#xff0c;而且數…

eval 函數 代替函數_eval()函數以及JavaScript中的示例

eval 函數 代替函數eval()函數 (eval() function) eval() function is a predefined global function in JavaScript and it is used to evaluate (execute) an expression, which is passed to the function as a parameter. It can also evaluate any JavaScript code. eval(…

F# ≥ C#(活動模式 和枚舉)

F#提供了一個叫"活動模式"的有趣功能。它把輸入的數據轉換成其他不同的東西。 一個有趣的使用實例就是代替枚舉。但我編程枚舉的時候&#xff0c;我總不高興去鏈接枚舉項到它的定義。例如&#xff0c;下面的枚舉定義了 數字枚舉&#xff0c; enum Numbers{Odd,Even,}…

關于java的classpath設置

今天晚上實驗室的另一個人在編譯一個java程序&#xff0c;需要用到一個jar文件&#xff0c;所以在命令行編譯的時候需要添加jar的路徑&#xff0c;例如&#xff1a; java -classpath demo.jar hello 但是設置了path之后java就不會搜索當前目錄&#xff0c;也就是所如果hello在當…

C語言uthash的用法

文章目錄1 定義一個哈希表鍵值UT_hash_handle2 哈希操作聲明添加查找刪除獲取哈希表中元素個數迭代排序3 案例鍵的使用官網解釋&#xff1a;https://troydhanson.github.io/uthash/userguide.html 在使用之前&#xff0c;我們必須包含uthash.h的頭文件&#xff0c;你需要將該頭…

Javascript Paste Keyboard Shortcuts Hijack

author : kj021320 team : I.S.T.O 這樣的攻擊手段也算是極其無恥 猥瑣之極! 所以防御措施一定要做好 首先說一下通過Javascript Paste Keyboard Shortcuts Hijack能做什么???能夠讀取你本地機器任何文件! 沒錯!也就是說 你中了任何一個XSS 加上你按了粘貼快捷鍵后,你就有可…

python 生成器表達式_Python中的列表理解與生成器表達式

python 生成器表達式The list is a collection of different types of elements and there are many ways of creating a list in Python. 該列表是不同類型元素的集合&#xff0c;并且有許多方法可以在Python中創建列表。 清單理解 (List Comprehension) List comprehension…

Javaweb---監聽器

1.什么是監聽器 監聽器就是監聽某個對象的狀態變化的組件。 事件源&#xff1a;被監聽的對象 ----- 三個域對象 request session servletContext 監聽器&#xff1a;監聽事件源對象 事件源對象的狀態的變化都會觸發監聽器 ---- 62 注冊監聽器&#xff1a;將監聽器與事件源進行…

Linux中的Ramdisk和Initrd

Ramdisk簡介先簡單介紹一下ramdisk&#xff0c;Ramdisk是虛擬于RAM中的盤(Disk)。對于用戶來說&#xff0c;能把RAM disk和通常的硬盤分區&#xff08;如/dev/hda1&#xff09;同等對待來使用&#xff0c;例如&#xff1a;redice # mkfs.ext2 /dev/ram0mke2fs 1.38 (30-Jun-200…

slab下kmalloc內核函數實現

文章目錄kmalloc的整體實現獲取高速緩存高速緩存獲取index總結https://blog.csdn.net/qq_41683305/article/details/124554490&#xff0c;在這篇文章中&#xff0c;我們介紹了伙伴算法、slab機制和常見的內存管理函數&#xff0c;接下來&#xff0c;我們看看kmalloc內核函數的…

PHP array_merge_recursive()函數與示例

PHP array_merge_recursive()函數 (PHP array_merge_recursive() function) array_merge_recursive() function is used to merge two or more arrays, it returns a new array with merged elements. The only difference between array_merge() and array_merge_recursive() …

標題:三羊獻瑞

標題&#xff1a;觀察下面的加法算式&#xff1a; 其中&#xff0c;相同的漢字代表相同的數字&#xff0c;不同的漢字代表不同的數字。 請你填寫“三羊獻瑞”所代表的4位數字&#xff08;答案唯一&#xff09;&#xff0c;不要填寫任何多余內容。 思路分析&#xff1a; 首先…

hdu 1069

地址&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1069 題意&#xff1a;給定若干個木塊長寬高&#xff0c;長寬高可以自己調整&#xff0c;求堆積起來最高的高度。 mark&#xff1a;枚舉所有木塊長寬高可能情況&#xff0c;簡單dp。 代碼&#xff1a; #include <…

簡明 Python 編程規范

簡明 Python 編程規范編碼 所有的 Python 腳本文件都應在文件頭標上 # -*- coding:utf-8 -*- 。設置編輯器&#xff0c;默認保存為 utf-8 格式。注釋 業界普遍認同 Python 的注釋分為兩種的概念&#xff0c;一種是由 # 開頭的“真正的”注釋&#xff0c;另一種是 docstri…

進程虛擬地址管理

文章目錄1 地址分布實際使用中的內存區域2 進程的虛擬地址描述用戶空間mmap線程之間共享內存地址的實現機制1 地址分布 現在采用虛擬內存的操作系統通常都使用平坦地址空間&#xff0c;平坦地址空間是指地址空間范圍是一個獨立的連續空間&#xff08;比如&#xff0c;地址從0擴…