XPath-padexpressie
Gebruikt om knopen of sets van knopen te selecteren in een XML-document
1. Terminologie: Node: 7 typen: elementen, attributen, tekst, naamruimtes, verwerkingscommando's, opmerkingen, document- (root-)knooppunten
2. Knooprelaties: Ouder, Kinderen, Broer of Zus, Voorouder, Nakomeling
3. Padexpressie
Knoopnaam Knoopnaam, selecteer alle kindknopen van deze knoop Voorbeeld: kindknoop De kindknoop kindknoop in de huidige knoop bevat niet de knopen van kleinkinderen en daaronder
/ 从根节点选取 例:/root/childnode/grandsonnode
Vertegenwoordigt alle afstammelingen, bijvoorbeeld ://childnode Alle afstammelingen die childnodes worden genoemd
. Stelt de huidige knoop voor Voorbeeld: ./kindknoop vertegenwoordigt de kindknoop van de huidige knoop
.. Vertegenwoordig de ouderknoop Voorbeeld: /nearnode vertegenwoordigt de nearnode kindknoop van de ouderknoop
@ Kies het attribuut /root/childnode/@id om alle nodesets met id-attributen in childnode weer te geven
4. Predicaten
Predicaten kunnen enkele beperkingen opleggen aan de knoopverzameling, waardoor de selectie preciezer wordt
/root/book[1] 节点集中的第一个节点
/root/book[last()] 节点集中最后一个节点
/root/book[position() - 1] 节点集中倒数第二个节点集
/root/book[position() < 5] 节点集中前五个节点集
/root/book[@id] 节点集中含有属性id的节点集
/root/book[@id='chinese'] 节点集中id属性值为chinese的节点集
/root/book[price > 35]/title 节点集中book的price元素值大于35的title节点集
5. Joker: Jokerkaarten (*,@*,node(), tekst()) worden ook ondersteund in het XPath-pad.
Voorbeeld: /boekwinkel/*
titel[@*]
6. XPath-as
Definieer een verzameling knopen ten opzichte van de huidige knoop
Voorouder alle voorouderknooppunten
Attributen alle attribuutknooppunten
Child alle kindelementen
nakomelingen alle nakomelingen (zonen, kleinkinderen...). )
Alle knopen volgen na het beëindigen markeren vóór alle knopen voordat het taggen begint
volgende-broer eindigt alle broer-zus-knopen na de tag
voorafgaande-broer alle broer/zus-knopen voordat je begint met taggen
naamruimte: alle knooppunten in de huidige naamruimte
Ouderouder
zelfstroomknoop
Gebruik: Asnaam: Knooptest [Predicaat]
Bijvoorbeeld: voorvader::boek
kind::tekst()
7. Operators
| Fusie van twee knooppunten Voorbeeld: /root/book[1] | /root/book[3]
+,-,*,dev,mod
=,!=,<,>,<=,>=
of, en of en |