В таблице ниже вы можете увидеть соответствие между xpath запросом и его аналогом в css.
CSS селектор | XPath запрос | Описание |
---|---|---|
* | //* | Любой элемент |
E | //E | Элемент с тэгом E (типа E) |
E[foo] | //E[@foo] | Элемент E, у которого есть атрибут foo |
E[foo="bar"] | //E[@foo="bar"] | Элемент E, у которого значение атрибута foo равно bar |
E[foo~="bar"] | //E[contains( concat(" ", @foo, " "), concat(" ", "bar", " ") )] | Элемент E, у которого значение атрибута foo представляет собой список значений, разделенных пробелами, и одно из них равно bar |
E[foo^="bar"] | //E[starts-with(@foo, "bar")] | Элемент E, у которого значение атрибута foo начинается с bar |
E[foo$="bar"] | //E[substring(@foo, string-length(@foo) - string-length("bar") + 1) = "bar"] | Элемент E, у которого значение атрибута foo заканчивается bar |
E[foo*="bar"] | //E[contains(@foo, "bar")] | Элемент E, у которого значение атрибута foo содержит bar |
E[foo|="bar"] | //E[@foo="bar" or starts-with(@foo, concat("bar", "-")] | Элемент E, у которого значение атрибута foo представляет собой разделенный дефисами список значений, который начинается с bar |
E:nth-child(a*n+b) | a < 0: //*[position() <= b][name() = "E"] a == 0: //*[position() = b][name() = "E"] a > 0: //*[(position() + b) mod a = 0][name() = "E"] |
Элемент E, который является a*n+b ребенком своего родителя |
E:nth-last-child(a*n+b) | a < 0: //*[position() > last() — b][name() = "E"] a == 0: //*[last() - b][name() = "E"] a > 0: //*[(last() - position() + b - 1) mod a = 0][name() = "E"] |
Элемент E, который является a*n+b ребенком с конца своего родителя |
E:first-child | //*/*[1][name() = "E"] или //*/*[1]/self::E |
Элемент E, который является первым ребенком своего родителя |
E:last-child | //*/*[last()][name() = "E"] или //*/*[last()]/self::E |
Элемент E, который является последним ребенком своего родителя |
E:only-child | //*[count(*) = 1]/E | Элемент E, который является единственным ребенком своего родителя |
E:empty | //E[count(*) = 0 and (not(text()) or text() = "")] | Элемент E, у которого нет детей, включая текстовых нод |
E:checked | //E[@checked] | - |
E:enabled | //E[@disabled="false"] | - |
E:disabled | //E[@disabled="true"] | - |
E.warning | //E[contains(concat(" ", @class, " "), concat(" ", "warning", " ")] | Элемент E, у которого есть класс warning |
#myid | id(«myid») | Элемент c id равным myid |
E#myid | //E[@id="myid"] | Элемент E, у которого id равен myid |
E:not(s) | //E[not(_selector_)] | Отрицательный селектор |
E F | //E//F | Элемент F, который является потомков E |
E > F | //E/F | Элемент F, который является ребенком E |
E + F | //E/following-sibling::*[1]/self::F | Элемент F, который непосредственно следует за E |
E ~ F | //E/following-sibling::F | Элемент F, который следует за E |
psd landing templates
ОтветитьУдалить