me reste que cette expression XPath:aide à comprendre XPath
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
?
Acctuellement, je ne comprends pas le symbole |
me reste que cette expression XPath:aide à comprendre XPath
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
?
Acctuellement, je ne comprends pas le symbole |
Le tube (|) dans XPath combine des expressions. Donc, cela va revenir l'attribut href pour les éléments de liaison (qui match le prédicat) et le contenu du texte des liens
donc donné un fragment comme
<link>test</link>
<link href="http://www.google.com">Google</link>
<link rel="zzzz" href="http://www.stackoverflow.com">Stack Overflow</link>
vous obtiendrez:
test
http://www.google.com
Google
Stack Overflow
Le symbole | est un syndicat. Il saisit tous les éléments qui correspondent soit du côté gauche, soit du côté droit.
Qu'est-ce que XPath dit est:
également saisir (à cause de l'union):
Sorte de XPath wierd, mais c'est ce qu'il fait.
Merci beaucoup. – Nikita
En fait, je ne comprends pas le symbole |
C'est le XPath union operator.
Tel que défini dans le W3 XPath 2.0 Spec:
• Le syndicat et |. les opérateurs sont équivalent. Ils prennent deux séquences comme opérandes et renvoient une séquence contenant tous les noeuds apparaissant dans l'un ou l'autre des opérandes.
Bien sûr, le « syndicat » (mot anglais) opérateur n'a été ajoutée à XPath 2.0 et XPath 1.0, nous avons seulement son synonyme auparavant, représenté par le caractère |
.
Ainsi, dans le cas particulier de:
link[@rel='alternate' and @type='text/html' or not(@rel)]/@href | link/text()
l'expression XPath ci-dessus sélectionne l'union de deux ensembles:
Tous les noeuds sélectionnés par: link[@rel='alternate' and @type='text/html' or not(@rel)]/@href
Tous les nœuds, sélectionnés par: link/text()
Union est une opération standard dans la théorie des ensembles (et en mathématiques), bien que le signe « U » est utilisé pour y représenter l'union.
Pour citer la définition de Wikipedia:
L'union de deux ensembles A et B est la collection de points qui sont en A ou en B (ou les deux):
Un exemple simple:
A = {1,2,3,4,5,6}
B = {1,5,6,7,8}
A U B = {1,2,3,4,5,6,7,8}
Bonne question (+1). Voir ma réponse pour une définition et une explication exactes. :) –