xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
The Planet of Love
Имеет смысл привести как можно больше примеров — примеров XPath или образцов выбора никогда не бывает слишком много. Ниже приведен содержательный ряд примеров образцов выбора:
• PLANET
выбирает дочерние элементы контекстного узла;
• /PLANETS
выбирает корневой элемент документа;
• *
выбирает все дочерние элементы контекстного узла;
• PLANET[3]
выбирает третьего ребенка контекстного узла;
• PLANET[last()]
выбирает последнего ребенка контекстного узла;
• PLANET[NAME]
выбирает детей контекстного узла, имеющих детей ;
• PLANET[DISTANCE]/NAME
выбирает все элементы элементов , содержащих по крайней мере один элемент ;
• PLANET[DISTANCE]/PLANET[DAY]
выбирает все элементы элементов , в которых элемент содержит по крайней мере один элемент , и элемент содержит по крайней мере один элемент ;
• РLANETS[РLАNET/DAY]
выбирает все элементы , содержащие элементы как минимум с одним элементом ;
• PLANET[DISTANCE][NAME]
выбирает все элементы , имеющие элементы и ;
• PLANETS/PLANET[last()]
выбирает последний элемент в каждом элементе ;
• */PLANET
выбирает всех внуков контекстного узла;
• /PLANETS/PLANET[3]/NAME[2]
выбирает второй элемент третьего элемента элемента ;
• //PLANET
выбирает всех потомков корня документа;
• PLANETS//PLANЕТ
выбирает потомков элемента детей элемента контекстного узла;
• //PLANET/NAME
выбирает все элементы , дочерние по отношению к родителю ;
• РLАNETS//PLАNET/DISTАNСЕ//РЕRIНЕLION
выбирает элементы везде внутри элемента элемента , везде внутри элемента ;
• @UNITS
выбирает атрибут UNITS
контекстного узла;
• @*
выбирает все атрибуты контекстного узла;
• *[@UNITS]
выбирает все элементы с атрибутом UNITS
;
• DENSITY/@UNITS
выбирает атрибут UNITS
в элементах ;
• PLANET[not(@COLOR) or not(@SIZE)]
выбирает элементы , не имеющие обоих атрибутов COLOR
и SIZE
;
• PLANETS[@STAR="Sun"]//DENSITY
выбирает любой элемент с элементом-предком , имеющим атрибут STAR
со значением " Sun
";
• PLANET[NAME="Venus"]
выбирает детей контекстного узла, имеющих детей с текстом " Venus
";
• PLANET[NAME[1]="Venus"]
выбирает все элементы , у которых в первом элементе содержится текст в " Venus
";
• DAY[@UNITS!="million miles"]
выбирает все элементы , атрибут UNITS
которых не равен " million miles
";
• PLANET[@UNITS="days"]
выбирает всех детей контекстного узла, имеющих атрибут UNITS
со значением " days
";
• PLANET[6][@UNITS="days"]
выбирает шестого ребенка контекстного узла, только если у этого ребенка есть атрибут UNITS
со значением " days
", — что также можно записать как PLANET[@UNITS="days"][6]
;
• PLANET[@COLOR and @UNITS]
выбирает всех детей контекстного узла, имеющих оба атрибута COLOR
и UNITS
;
• *[1][NAME]
выбирает любой элемент , являющийся первым ребенком своего родителя;
• *[position() < 5]
выбирает первые пять детей контекстного узла;
• *[position() < 5][@UNIT]
выбирает первые пять детей контекстного узла с атрибутом UNITS
;
• text()
выбирает все дочерние текстовые узлы контекстного узла;
• text()[starts-with(., "In the course of human events")]
выбирает все дочерние текстовые узлы контекстного узла, начинающиеся с " In the course of human events
";
• /PLANETS[@UNITS="million miles"]
выбирает все элементы PLANETS
, у которых значение атрибута UNITS
равно " million miles
";
• PLANET[/PLANETS/@UNITS=@REFERENCE]
выбирает все элементы , у которых значение атрибута REFERENCE
такое же, как значение атрибута UNITS
элемента PLANETS
в корне документа;
• PLANET/*
выбирает все дочерние элементы элементов PLANET
;
• PLANET/*/DAY выбирает все элементы DAY — правнуки элементов PLANET, являющиеся детьми контекстного узла;
• */*
выбирает элементы-внуки текущего элемента;
• astrophysics:PLANET
выбирает элемент PLANET
в пространстве имен « astrophysics
»;
• astrophysics:*
выбирает любые элементы в пространстве имен « astrophysics
»;
• PLANET[DAY and DENSITY]
выбирает все элементы , у которых есть по крайней мере один элемент и один элемент ;
• PLANET[(DAY or DENSITY) and MASS]
выбирает все элементы , у которых есть по крайней мере один элемент или один элемент , а также по крайней мере один элемент ;
• PLANET[DAY and not(DISTANCE)]
выбирает все элементы , у которых есть по крайней мере один элемент и нет элементов ;
• PLANET[MASS=/STANDARD/REFERENCE/MASS]
выбирает все элементы , у которых значение элемента равно значению элемента ///
.
Читать дальше