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]выбирает все элементы , у которых значение элемента равно значению элемента ///.
Читать дальше