1.Relative positioning and absolute positioning
// represents relative positioning. Relative positioning should be used for pages or nodes that frequently change. Search
/ means absolute positioning. When remains unchanged, you can use absolute positioning to search
##Top node: bookstore
Current node:“. ”
If there are multiple current nodes, match multiple
If the current node has only 1, then match 1
Select the current node The parentnode:" ..”
For p under html/body, its parent node is body. This is done using absolute The path means that you must find the body from the html and then find p, and then match the parent node of p.
If you use a relative path to find the parent node, you can see that its absolute position is not considered starting from p, that is to say All elements starting from body that meet the conditions of the parent node will be found.
Find all elements under the current node: //book[1]/..
This is the method of node index +parent node
##3.book
One more Baidu4.
category//book[@category='cooking'] '
[]' means search attribute
2.
Usetext text attribute for precise positioning, text can also be used instead of
Find the element with the text 30.00 under//book//price
Find the element in the text in the year tag that is greater than 2004
3. Use contains for fuzzy positioning. contains means containing
Fuzzy positioning searches for elements whose text information contains Potter: //title[contains(text(),"Potter")]
Extension Exercise
4.”*” means any Attributes All attributes
Find all attributes with attribute values://@*
Find all elements with attributes in the tag:
Use
Not to negate , means to find elements that have no attributes in the title tag , there is no one here so I didn’t find it.
@*
means all attributesnot(@*)
means no attributes
5.
Find elements with thecategory attribute//@category
5.
and operator//book[@category="web" and @cover="paperback"]
2. Locate elements through the or operator
// book[@category="children" or @cover="paperback"]3.
Locate elements by negating thenot operator //book[not(position()>2)]
Get the# whose position is greater than
2 in thebook tag
##//book[not(position()>2)] not negation
//year[not(.=2005) ] means taking the year node that is not the
2005 text node
Find the element by “>=”“operator
//price>=30 Whether there is price greater than or equal to 30 Exists returns Boolean true Does not exist Returns Boolean: false
4.Locate elements through "!"operator
//book [@category!='web' ]
1.Find the first element
//book[1]: Find the first # with the label book
##2.Position the th 3# through position ##Element//bookstore/book[position()=3]
3.
Get multiple elements throughposition//bookstore/book[position()>=2]
4. Through last()
Function to find the last element//book[last()]
5.
Passlast ()Function to find the penultimate element//book[last()-1]
7 .
Find the parent element of
book[1]/title: //book [1]/title/parent::*
book[1]: //book[ 1]/child::*
//book/child::price
Find all child elements under thebook tag with the tag price
following-sibling
Application//bookstore/book[1]/child::title/following-sibling::*
Following-sibling represents all sibling node elements in the subsequent sequence of the current node
title
/bookstore/book[1]/child::title/following-sibling::author
following-sibling::author
title The element named author
preceding-sibling::* represents all sibling node elements in front of the current node
//bookstore /book[1]/child::price/preceding-sibling::*
means to find all sibling elements in front of theprice node
Find ancestor nodes including self: //book[1]/ancestor-or-self::* Find descendant nodes including self: //book[1]/descendant-or-self::*
##//book[2]//preceding::* will book[2] and book[2] nodes before Find all elements of
# #Axis summary: parent::* represents the parent node element of the current node child::* represents the current node The child elements of the node /A/descendant::* represent all descendant elements of A
Find all elements of the current node: //book[1]/preceding::* Find all elements under the current node
self::* represent the self elements of the current node
ancestor-or-self::* represent the current node and its ancestor nodes The element
descendant-or-self::* represents the current node and their descendant elements
following-sibling::* represents the following sibling node elements of the current node
preceding-sibling::* represents All sibling node elements in front of the current node
following::* represents all elements in the following order of the current node
preceding::* represents all elements of the current node
The above is the detailed content of Summary of Xpath positioning. For more information, please follow other related articles on the PHP Chinese website!