basic-xpath-xpathcode.xml / xml
<?xml version="1.0" encoding="iso-8859-1"?> <xpath-examples> <chapter number="5"> <group section="Expressions"> <example>1 to 3, 5, 7, 11, 13</example> <example>for i*</example> <example>some i in //item satisfies exists(/*)</example> <example>if (exists(@price)) then @price else 0</example> <example>@price > 3 or @cost < 2</example> </group> <group section="Expressions"> <example>x + (</example> <example>//book | //magazine</example> <example>substring-before(author, ' ')</example> <example>chapter and verse</example> <example>93.7</example> <example>sum(for i in //product return i/qty)</example> <example>avg( (//product)[position()<=5]/price)</example> </group> <group section="Comments"> <example>if (string(@x)) then (: attribute x exists and is non-empty :) @x else "none" </example> <example> 3 (: + if (number(@x)) then (: attribute x exists and is non-zero :) @x else 0 :) </example> </group> </chapter> <chapter number="6"> <group section="Integer Arithmetic"> <example result="2">20 mod 3</example> <example result="2">20 mod -3</example> <example result="-2">-20 mod 3</example> <example result="-2">-20 mod -3</example> <example result="6">20 idiv 3</example> <example result="-6">20 idiv -3</example> <example result="-6">-20 idiv 3</example> <example result="6">-20 idiv -3</example> </group> <group section="Examples of Numeric Arithmetic"> <example> </example> <example> last()-1 </example> <example> @margin*2 </example> <example> ceiling(count(item) div 3) </example> <example> seq[position() <= last() idiv 2] </example> <example> item[position() mod 2 = 0] </example> <example> count(</example> <example> - @credit </example> <example> 1---1 </example> </group> <group section="Duration divided by Duration"> <example result="40">xdt:dayTimeDuration("P10D") div xdt:dayTimeDuration("PT6H") </example> <example result="-86400">xdt:dayTimeDuration("-P1D") div xdt:dayTimeDuration("PT1S") </example> <example result="0.083333333333333333">xdt:yearMonthDuration("P1M") div xdt:yearMonthDuration("P1Y") </example> <example note="get day of week">("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday") [1 + ((date - xs:date("1901-01-06")) div xdt:dayTimeDuration("P1D") mod 7)]</example> </group> <group section="Value Comparisons"> <example></example> <example>count(x) gt 2</example> <example>@x eq "yes"</example> <example>@retirement-date ge current-date()</example> </group> <group section="General Comparisons"> <example>@width = 3</example> <example>@width = @height</example> <example>@width != </example> <example>count(*) > 10</example> <example>sum(SALES) < 10000</example> <example>position() < last() div 2 </example> <example>not(//@temp <= 0.0)</example> </group> <group section="Boolean Expressions"> <example>x > 3 and </example> <example>@name and @address</example> <example>string(@name) and string(@address)</example> <example>true()</example> <example>x = 5 or </example> <example>@name or @id</example> <example>not(@id) or @id=""</example> <example>//para[position()=1 or position()=last()]</example> </group> </chapter> <chapter number="7"> <group section="Examples of Path Expressions"> <example>para</example> <example>@title</example> <example>book/author/first-name</example> <example>para[@id]</example> <example>para/@id</example> <example>/*/para</example> <example>paragraphs</example> <example></example> <example>sections[3]/body</example> <example></example> <example>/contract/clause[3]/subclause[2]</example> <example>//figure</example> <example>city[not(@name=preceding-sibling::city/ @name)]</example> </group> <group section="Examples of Absolute Paths"> <example test="no">/</example> <example>/price-list</example> <example test="no">/*</example> <example>/child::node()</example> <example>/*/xsl:*</example> <example>//figure</example> </group> <group section="Examples of Relative Paths"> <example>ancestor::CHAPTER</example> <example>TITLE</example> <example>descendant::PARA/@style</example> <example>section[1]/clause[3]</example> <example>chapter/section/para/sentence</example> <example test="no">doc('a.xml')/id('Z123')</example> <example>book/(chapter|appendix)</example> </group> <group section="Examples of Steps"> <example>child::title</example> <example>title</example> <example>attribute::title</example> <example>@title</example> <example>ancestor::xyz:*</example> <example>*[@width]</example> <example>text()[starts-with(.,'The')]</example> <example>*[applet.class][position() < 10]</example> <example>*[position() < 10][applet.class]</example> <example>self::*[not(applet.class = preceding-sibling::*/applet.class)]</example> <example>namespace::*</example> <example>self::item</example> <example>comment()</example> <example>@comment()</example> </group> <group section="Examples of Node Tests"> <example>TITLE</example> <example>news:article</example> <example>MathML:*</example> <example>*</example> <example>text()</example> <example>processing-instruction()</example> <example>processing-instruction('ckpt')</example> <example>node()</example> </group> <group section="Example of Name Tests"> <example>*</example> <example>xt:*</example> <example>title</example> <example>wrox:title</example> <example>*:title</example> </group> <group section="Example of Kind Tests"> <example>parent::node()</example> <example>// comment()</example> <example>child::text()</example> <example>@comment()</example> </group> <group section="Abbreviations"> <example>@category</example> <example>title</example> <example>exists(..)</example> <example>../@name</example> <example>//figure</example> <example>//book[@category= 'fiction']</example> <example>//*/*</example> <example>//book/title</example> <example>chapter//footnote</example> <example>.//footnote</example> <example test="no">doc('lookup.xml')//entry</example> <example>winners//*/@name</example> <example>.//..</example> <example>chapter//footnote</example> </group> <group section="Predicates"> <example>para[position()>1]</example> <example></example> <example>chapter/para[1]</example> <example>(chapter/para)[1]</example> <example>section[@title='Introduction']</example> <example>section[title]</example> <example>title[substring-before(.,':')]</example> <example>book[not(author=preceding-sibling::author)]</example> <example>para[1]</example> <example>para[last()]</example> <example>para[position()!=1]</example> <example>para[position()=1 to 5]</example> <example>para[last()-1]</example> <example>para[3.2]</example> <example>para[position()]</example> <example>para[position()-1]</example> <example>para[number(@nr)]</example> <example>book[author="P. D. James"][1]</example> <example>book[1][author="P. D. James"]</example> <example>book[position()=1 and author="P. D. James"]</example> </group> <group section="Combining Sets of Nodes"> <example>*/figure | */table</example> <example>book[not(@publisher)] | book[@publisher='Wrox']</example> <example>(.|..)/title</example> <example>sum( (book|magazine)/@sales)</example> <example>(//* | //@*) [.='nimbus2000']</example> <example>following::para intersect chap//*</example> <example test="no">key('a', 'Gilbert') intersect key('a', 'Sullivan')</example> <example>exists(. intersect </example> <example>@* except @note</example> </group> </chapter> <chapter number="8"> <group section="The Comma Operator"> <example>max((net, </example> <example>for i in (1 to 4, 8, 13) return i]</example> <example>string-join((@a, @b, @c), "-")</example> <example>(applet.class, "N/A")[1]</example> <example>book/(author, title, isbn)</example> </group> <group section="Numeric ranges: The to operator"> <example>for seq[n]</example> <example></example> <example>string-join( for i in 1 to </example> <example>for i in 1 to count(S[T[</example> </group> <group section="Filter Expressions"> <example>paragraphs[23]</example> <example test="no">key('empname', 'John Smith')[@loc='Sydney']</example> <example>(//section|//subsection) [title='Introduction']</example> <example>(//@href/doc(.)) [pricelist][1]</example> </group> <group section="The for Expression"> <example>for i*</example> <example>for i in 0 to 4 return 1 to </example> <example>count(for i in 1 to 8, i, </example> </group> <group section="The some and every Expressions"> <example>some i in //item satisfies </example> <example>some n in 1 to count(S[n+1]</example> <example>every p/@dob castable as xs:date</example> <example>some p in //para satisfies contains(k)</example> <example>every r in //termref satisfies r/@def</example> </group> </chapter> <chapter number="9"> <group section="The instance of Operator"> <example></example> <example>if (some s in s instance of node()) then 0 else 1</example> <example>if (not(</example> <example>p instance of item()+</example> </group> <group section="The treat as Operator"> <example test="no"> if (data(@quantity) instance of xs:string) then if ((@quantity treat as xs:string) = "n/a") then -2 else if ((@quantity treat as xs:string) = "unknown") then -1 else error() else (@quantity treat as xs:integer) + 2 </example> </group> </chapter> <chapter number="10"> <group section="abs"> <example result="2">abs(2)</example> <example result="2">abs(-2)</example> <example result=".7">abs(-3.7)</example> <example result="1.0e-7">abs(-1.0e-7)</example> <example result="NaN">abs(number('NaN'))</example> </group> <group section="adjust-date/time-to-timezone"> <example result="09:00:00-05:00">adjust-time-to-timezone(xs:time("15:00:00+01:00"), </example> <example result="15:00:00-05:00">adjust-time-to-timezone(xs:time("15:00:00"), EST)</example> <example result="06:00:00-08:00">adjust-time-to-timezone(xs:time("15:00:00+01:00"))</example> <example result="15:00:00">adjust-time-to-timezone(xs:time("15:00:00+01:00"), ())</example> <example result="15:00:00">adjust-time-to-timezone(xs:time("15:00:00"), ())</example> <example result="2004-03-01T09:00:00-05:00">adjust-dateTime-to-timezone(xs:dateTime("2004-03-01T15:00:00+01:00"), </example> <example result="2004-03-01T15:00:00-05:00">adjust-dateTime-to-timezone(xs:dateTime("2004-03-01T15:00:00"), EST)</example> <example result="2004-03-01T06:00:00-08:00">adjust-dateTime-to-timezone(xs:dateTime("2004-03-01T15:00:00+01:00"))</example> <example result="2004-03-01T15:00:00">adjust-dateTime-to-timezone(xs:dateTime("2004-03-01T15:00:00+01:00"), ())</example> <example result="2004-03-01T15:00:00">adjust-dateTime-to-timezone(xs:dateTime("2004-03-01T15:00:00"), ())</example> <example result="2004-02-29-05:00">adjust-date-to-timezone(xs:date("2004-03-01+01:00"), </example> <example result="2004-03-01-05:00">adjust-date-to-timezone(xs:date("2004-03-01"), EST)</example> <example result="2004-02-29-08:00">adjust-date-to-timezone(xs:date("2004-03-01+01:00"))</example> <example result="2004-03-01">adjust-date-to-timezone(xs:date("2004-03-01+01:00"), ())</example> <example result="2004-03-01">adjust-date-to-timezone(xs:date("2004-03-01"), ())</example> </group> <group section="avg"> <example result="xs:decimal('2.2')">avg((1.0, 2.6, 3.0)) </example> <example result="()">avg(())</example> <example result="xs:float('3.0')">avg((1, xs:float('3.5'), 5.5))</example> <example result="xs:decimal('2.0')">avg((1, 2, 3))</example> <example result="PT18H" test="no">avg((xdt:dayTimeDuration("P1D"), xdt:dayTimeDuration("PT12H")))</example> </group> <group section="boolean"> <source-document> <doc> <emp name="John" age="53"/> <emp name="Mary"/> </doc> </source-document> <example result="false">boolean(//emp[@age=21])</example> <example result="true">boolean(//emp[@age=53])</example> <example result="true">boolean(number(</example> <example result="false">boolean(number(Mary/@age))</example> <example result="false">boolean(count(/*))</example> <example result="false">boolean(string(John/@surname))</example> <example result="true">boolean(string(</example> <example result="true">boolean("true")</example> <example result="true">boolean("false")</example> </group> <group section="ceiling"> <example result="1.0">ceiling(1.0)</example> <example result="2.0">ceiling(1.6)</example> <example result="6.0">ceiling(17 div 3)</example> <example result="-3.0">ceiling(-3.0)</example> <example result="-8.0e0">ceiling(-8.2e0)</example> <example result="NaN">ceiling(number('xxx'))</example> <example result="-0.0e0">ceiling(-0.5e0)</example> </group> <group section="codepoints-to-string"> <example result="ASCII">codepoints-to-string((65, 83, 67, 73, 73))</example> <example result="0123456789">codepoints-to-string(48 to 57)</example> <example result="">codepoints-to-string(())</example> <example>codepoints-to-string(64+n)</example> </group> <group section="compare"> <example result="-1">compare("espace", "espacer") </example> <example result="-1">compare("espace", "espac�", </example> <example result="0">compare("espace", "espac�", weak)</example> <example result="+1">compare("espacer", "espac�", </example> <example result="+1">compare("espacer", "espac�", weak)</example> </group> <group section="concat"> <example result="abc">concat("a", "b", "c")</example> <example error="true">concat("chap", 3)</example> <example result="ab">concat("a", (), (), "b")</example> <example error="true">concat("a", ("b", "c"))</example> </group> <group section="contains"> <example result="true">contains("Shakespeare", "spear")</example> <example result="false">contains("", "a")</example> <example result="true">contains("Shakespeare", "")</example> <example result="true">contains("", "")</example> <example result="false">contains((), "a")</example> </group> <group section="count"> <source-document> <doc> <obs at="10:42:06" colors="red green"/> <obs at="11:43:12" colors="green blue orange"/> </doc> </source-document> <example result="2">count(//obs)</example> <example result="2">count(//obs/@colors)</example> <example result="5">count(data(//obs/@colors))</example> <example result="4">count(//@*)</example> <example result="0">count(//obs/@date)</example> <example result="6">count((5 to 10))</example> </group> <group section="data"> <source-document> <rows> <row number="1" colors="red green"/> <row number="2" colors="yellow purple"/> </rows> </source-document> <example result="1, 2">data(</example> <example result="red, green, yellow, purple">data(x/row/@colors)</example> <example error="true">data(</example> <example result="()">data(x/row)</example> </group> <group section="day-from-date/Time"> <example result="28">day-from-date(xs:date("2004-02-28"))</example> <example result="28">day-from-dateTime(xs:dateTime("2004-02-28T13:00:00"))</example> <example result="31">day-from-date(xs:date("2004-07-31+01:00"))</example> <example result="31">day-from-dateTime(xs:dateTime("2004-07-31T23:00:00-05:00"))</example> </group> <group section="days-from-dayTimeDuration"> <example result="5">days-from-dayTimeDuration(xdt:dayTimeDuration("P5DT12H"))</example> <example result="3">days-from-dayTimeDuration(xdt:dayTimeDuration("PT72H"))</example> <example result="-1">days-from-dayTimeDuration(xdt:dayTimeDuration("-P1D"))</example> </group> <group section="deep-equal"> <source-document> <doc> <e att1="a" att2="b" att3="c"><f/><g/></e> <e att3="C" att1="a" att2="b"><f/></e> <e att3="C" att1="a" att2="b"><f/><g/></e> </doc> </source-document> <example result="true">deep-equal((1,2,3), (1,2,3))</example> <example result="false">deep-equal((1,2,3), (3,2,1))</example> <example result="true">deep-equal((1,2), (1.0, 2.0)) </example> <example result="true">deep-equal((), ())</example> <example result="false">deep-equal(doc/e[2])</example> <example result="true">deep-equal(doc/e[3], </example> <example result="undefined">deep-equal(doc/e[1]/@*, weak) </example> </group> <group section="distinct-values"> <example result="3.5, 2.0, 1, 3">distinct-values((1, 2, 3, 3.5, 2.0, 1.0))</example> <example result="B, c, a">distinct-values(("A", "B", "C", "a", "b", "c"))</example> <example result="xs:time('13:20:02+01:00')">distinct-values((xs:time("12:20:02Z"), xs:time("13:20:02+01:00")))</example> <example result="a, 1, 2004-05-08Z">distinct-values((1, "a", current-date()))</example> </group> <group section="empty"> <source-document> <para>See also <a ref="elsewhere.xml" style=""/>.</para> </source-document> <example result="false">empty(/para)</example> <example result="false">empty(/para/a)</example> <example result="false">empty(/para/a/@style)</example> <example result="true">empty(/para/b)</example> <example result="true">empty(/para/a[2])</example> </group> <group section="ends-with"> <example result="true">ends-with("a.xml", ".xml")</example> <example result="false">ends-with("a.xml", ".xsl")</example> <example result="true">ends-with("a.xml", "")</example> <example result="true">ends-with("", "")</example> <example result="true">ends-with((), ())</example> </group> <group section="error"> <example error="true">error()</example> <example error="true">error(xs:QName("docbook:invalid-page-ref"))</example> </group> <group section="escape-uri"> <example result="simple.xml">escape-uri("simple.xml", true())</example> <example result="simple.xml">escape-uri("simple.xml", false())</example> <example result="my%20doc.xml">escape-uri("my doc.xml", true())</example> <example result="my%20doc.xml">escape-uri("my doc.xml", false())</example> <example result="f%2Bo.pdf">escape-uri("f+o.pdf", true())</example> <example result="f+o.pdf">escape-uri("f+o.pdf", false())</example> <example result="Gr\ %C3\ %BC\ %C3%9Fe.html">escape-uri("Gr��e.html", true())</example> <example result="Gr\ %C3\ %BC\ %C3%9Fe.html">escape-uri("Gr��e.html", false())</example> </group> <group section="exists"> <source-document> <para>See also <a ref="elsewhere.xml" style=""/>.</para> </source-document> <example result="true">exists(/para)</example> <example result="true">exists(/para/a)</example> <example result="true">exists(/para/a/@style)</example> <example result="false">exists(/para/b)</example> <example result="false">exists(/para/a[2])</example> </group> <group section="floor"> <example result="1.0">floor(1.0)</example> <example result="1.0e0">floor(1.6e0) </example> <example result="5.0">floor(17 div 3)</example> <example result="-3.0">floor(-3.0)</example> <example result="-9.0e0">floor(-8.2e0)</example> <example result="NaN">floor(number('NaN'))</example> </group> <group section="hours-from-dateTime/time"> <example result="12">hours-from-time(xs:time("12:35:03.142"))</example> <example result="13">hours-from-dateTime(xs:dateTime("2004-02-28T13:55:30"))</example> <example result="23">hours-from-time(xs:time("23:59:59+01:00"))</example> <example result="22">hours-from-dateTime(xs:dateTime("2004-07-31T22:10:00-05:00"))</example> </group> <group section="hours-from-dayTimeDuration"> <example result="12">hours-from-dayTimeDuration(xdt:dayTimeDuration("P5DT12H30M"))</example> <example result="0">hours-from-dayTimeDuration(xdt:dayTimeDuration("PT72H"))</example> <example result="-12">hours-from-dayTimeDuration(xdt:dayTimeDuration("-PT36H15M"))</example> </group> <group section="index-of"> <source-document> <doc> <obs at="10:42:06" colors="red green"/> <obs at="11:43:12" colors="green blue orange"/> </doc> </source-document> <example result="1">index-of(//@colors, "red")</example> <example result="2, 3">index-of(//@colors, "green")</example> <example result="()">index-of(//@colors, "pink")</example> </group> <group section="insert-before"> <example result="(1, 2, 3, 99, 100, 4, 5) ">insert-before(1 to 5, 4, (99, 100))</example> <example result="(99, 1, 2, 3, 4, 5)">insert-before(1 to 5, 0, 99)</example> <example result="(1, 2, 3, 4, 5, 99)">insert-before(1 to 5, 10, 99)</example> </group> <group section="lang"> <example>boolean(//*[lang('de')])</example> <example>/*/msg[applet.class="</example> </group> <group section="local-name"> <source-document> <my:doc xmlns:my="some.uri" security="high"/> </source-document> <example result="">local-name(/)</example> <example result="doc">local-name(/*)</example> <example result="security">local-name(/*/@*)</example> </group> <group section="lower-case"> <example result="sunday">lower-case("Sunday")</example> <example result="2+2">lower-case("2+2")</example> <example result="c�sar">lower-case("C�SAR")</example> </group> <group section="matches"> <source-document> <verse>A grand little lad was young Albert All dressed in his best, quite a swell With a stick with an horse's head handle The finest that Woolworth�s could sell.</verse> </source-document> <example result="true">matches(e, "grand")</example> <example result="true">matches(</example> <example result="true">matches(e, "(^.*</example> <example result="true">matches(e, "Albert.*Woolworth's", "s")</example> <example result="true">matches(</example> <example result="true">matches("banana", "^(.a)+")</example> <example result="true">matches("23 May 2003", "^[0-9]+\s[A-Z][a-z]+\s[0-9]+</example> <example result="true">matches("", "a*")</example> </group> <group section="max"> <example result="20">max((10, 20, -5, 13))</example> <example result="x">max(("a", "x", "b"))</example> <example result="2">max(2)</example> <example result="()">max(())</example> </group> <group section="min"> <example result="-5">min((10, 20, -5, 13))</example> <example result="a">min(("a", "x", "b"))</example> <example result="2">min(2)</example> <example result="()">min(())</example> </group> <group section="minutes-from-dateTime/time"> <example result="35">minutes-from-time(xs:time("12:35:03.142"))</example> <example result="55">minutes-from-dateTime(xs:dateTime("2004-02-28T13:55:30"))</example> <example result="30">minutes-from-time(xs:time("00:30:02+01:00"))</example> <example result="10">minutes-from-dateTime(xs:dateTime("2004-07-31T03:10:00+08:30"))</example> </group> <group section="minutes-from-dayTimeDuration"> <example result="20">minutes-from-dayTimeDuration(xdt:dayTimeDuration("PT12H20M"))</example> <example result="">minutes-from-dayTimeDuration(xdt:dayTimeDuration("PT210S"))</example> <example result="-15">minutes-from-dayTimeDuration(xdt:dayTimeDuration("-PT75M"))</example> </group> <group section="month-from-date/dateTime"> <example result="2">month-from-date(xs:date("2004-02-28"))</example> <example result="2">month-from-dateTime(xs:dateTime("2004-02-28T13:00:00"))</example> <example result="7">month-from-date(xs:date("2004-07-31+01:00"))</example> <example result="7">month-from-dateTime(xs:dateTime("2004-07-31T23:00:00-05:00"))</example> </group> <group section="months-from-yearMonthDuration"> <example result="3">months-from-yearMonthDuration(xdt:yearMonthDuration("P1Y3M"))</example> <example result="3">months-from-yearMonthDuration(xdt:yearMonthDuration("P15M"))</example> <example result="-3">months-from-yearMonthDuration(xdt:yearMonthDuration("-P1Y3M"))</example> </group> <group section="name"> <source-document> <my:doc xmlns:my="some.uri" security="high"/> </source-document> <example result="">name(/)</example> <example result="my:doc">name(/*)</example> <example result="security">name(/*/@*)</example> </group> <group section="namespace-uri"> <source-document> <my:doc xmlns:my="some.uri" security="high"/> </source-document> <example result="">namespace-uri(/)</example> <example result="some.uri">namespace-uri(/*)</example> <example result="">namespace-uri(/*/@security)</example> <example result="">namespace-uri(/*/namespace::my)</example> </group> <group section="namespace-uri-from-QName"> <example result="some.uri" test="no">namespace-uri-from-QName(expanded-QName('some.uri', invoice))</example> <example result="http://www.w3.org/XML/1998/namespace">namespace-uri-from-QName(node-name(@xml:space))</example> </group> <group section="normalize-space"> <example result="the quick brown fox">normalize-space(" the &#xa; quick &#x9; brown fox ")</example> <example result="">normalize-space(" ")</example> <example result="piano">normalize-space("piano")</example> <example result="">normalize-space(())</example> </group> <group section="normalize-unicode"> <example test="no" result="gar�on">normalize-unicode("garc�on")</example> <example test="no" result="garc�on">normalize-unicode("gar�on", "NFD")</example> </group> <group section="not"> <example>not(*)</example> <example>not(normalize-space(@a))</example> <example>not(author="Kay")</example> </group> <group section="number"> <example result="12.3e0">number(12.3)</example> <example result="12.3e0">number("12.3")</example> <example result="1.0e0">number(true())</example> <example result="NaN">number("xyz")</example> <example result="NaN">number("")</example> </group> <group section="one-or-more"> <example result="1">one-or-more(1)</example> <example result="1, 2, 3">one-or-more((1,2,3))</example> <example error="true">one-or-more(())</example> </group> <group section="remove"> <example result="1, 2, 3, 5">remove((1 to 5), 4)</example> <example result="1, 2, 3, 4, 5">remove((1 to 5), 10)</example> <example result="()">remove((), 1)</example> </group> <group section="replace"> <example result="bonono">replace("banana", "a", "o")</example> <example result="b[ana][na]">replace("banana", "(ana|na)", "[$1]")</example> <example result="b**a">replace("banana", "(an)+", "**")</example> <example result="b****a">replace("banana", "(an)+?", "**")</example> </group> <group section="resolve-QName"> <source-document> <doc xmlns:one="one.uri" xmlns="default.uri"> <chap xmlns="" att-one="text"> <data-one>one:value</data-one> <data-two>value</data-two> </chap> </doc> </source-document> <example result="{default.uri}text">resolve-QName(chap/@att-one, </example> <example result="{one.uri}value">resolve-QName(string(data1), </example> <example result="{}value">resolve-QName(string(data2), </example> </group> <group section="resolve-uri" xml:base="http://a/b/c/d;p?q"> <source-document> <doc xml:base="http://a/b/c/d;p?q"/> </source-document> <example result="http://a/b/c/g">resolve-uri("g")</example> <example result="http://a/b/c/g">resolve-uri("./g")</example> <example result="http://a/b/c/g/">resolve-uri("g/")</example> <example result="http://a/g">resolve-uri("/g")</example> <example result="http://a/b/c/?y">resolve-uri("?y")</example> <example result="http://a/b/c/g?y">resolve-uri("g?y")</example> <example result="http://a/b/c/d (but see Note)">resolve-uri("")</example> <example result="http://a/b/c/d#s (but see Note)">resolve-uri("#s")</example> <example result="http://a/b/g">resolve-uri("../g")</example> </group> <group section="reverse"> <example result="5, 4, 3, 2, 1">reverse(1 to 5)</example> <example result="1">reverse(1)</example> <example result="()">reverse(())</example> <example>reverse(ancestor::*)</example> </group> <group section="round"> <example result="3.2">round(3.2)</example> <example result="5.0e0">round(4.6e0) </example> <example result="8.0">round(7.5)</example> <example result="-7.0">round(-7.5)</example> <example result="-0.0e0">round(-0.0e0)</example> </group> <group section="round-half-to-even"> <example result="1.17">round-half-to-even(1.1742, 2)</example> <example result="1.18">round-half-to-even(1.175, 2)</example> <example result="2.0">round-half-to-even(2.5, 0) </example> <example result="270">round-half-to-even(273, -1)</example> <example result="-8000">round-half-to-even(-8500, -3)</example> </group> <group section="seconds-from-date/dateTime"> <example result="3.142">seconds-from-time(xs:time("12:35:03.142"))</example> <example result="30.0">seconds-from-dateTime(xs:dateTime("2004-02-28T13:55:30-01:00"))</example> </group> <group section="seconds-from-dayTimeDuration"> <example result="30.5">seconds-from-dayTimeDuration(xdt:dayTimeDuration("PT1M30.5S"))</example> <example result="30">seconds-from-dayTimeDuration(xdt:dayTimeDuration("PT150S"))</example> <example result="-0.0055">seconds-from-dayTimeDuration(xdt:dayTimeDuration("-P0.0055S"))</example> </group> <group section="starts-with"> <example result="true">starts-with('#note', '#')</example> <example result="true">starts-with('yes', 'yes')</example> <example result="false">starts-with('YES', 'yes')</example> <example result="true">starts-with('yes', '')</example> </group> <group section="string"> <source-document> <e example="yes"><first>17</first><second>blue</second></e> </source-document> <example result="17blue">string()</example> <example result="17">string(first)</example> <example result="blue">string(second)</example> <example result="yes">string(@example)</example> <example result="47.2">string(+47.20)</example> <example result="true">string(2=2)</example> <example error="true">string(*)</example> </group> <group section="string-join"> <example result="a, b, c">string-join(("a", "b", "c"), ", ")</example> <example result="ABC">string-join(("A", "B", "C"), "")</example> <example result="Z">string-join("Z", "+")</example> <example result="()">string-join((), "~")</example> </group> <group section="string-length"> <example result="3">string-length("abc")</example> <example result="2">string-length("<>")</example> <example result="1">string-length("""")</example> <example result="0">string-length("")</example> <example result="1">string-length('�')</example> <example result="1">string-length('𠀀')</example> </group> <group section="string-to-codepoints"> <example result="65, 83, 67, 73, 73">string-to-codepoints("ASCII")</example> <example result="100000">string-to-codepoints("𘚠")</example> <example result="()">string-to-codepoints("")</example> </group> <group section="subsequence"> <example result="4, 5, 6, 7, 8, 9, 10">subsequence(3 to 10, 2)</example> <example result="7, 8">subsequence(3 to 10, 5, 2)</example> <example result="()">subsequence(1 to 5, 10)</example> <example result="2, 3, 4, 5, 6">subsequence(1 to 10, 2.3, 4.6) </example> </group> <group section="substring"> <example result="bcde">substring("abcde", 2)</example> <example result="bc">substring("abcde", 2, 2)</example> <example result="">substring("abcde", 10, 2)</example> <example result="abcde">substring("abcde", 1, 20)</example> </group> <group section="substring-after"> <example result="xml">substring-after("my.xml", ".")</example> <example result="y.xml">substring-after("my.xml", "m")</example> <example result="">substring-after("my.xml", "xml")</example> <example result="">substring-after("my.xml", "#")</example> <example result="">substring-after("", "#")</example> <example result="my.xml">substring-after("my.xml", "")</example> </group> <group section="substring-before"> <example result="my">substring-before("my.xml", ".")</example> <example result="my-">substring-before("my-xml.xml", "xml")</example> <example result="">substring-before("my.xml", "")</example> <example result="">substring-before("my.xml", "#")</example> </group> <group section="subtract-dates/dateTimes"> <example test="no" result="P184D">subtract-dates-yielding-dayTimeDuration(xs:date("2005-01-01"), xs:date("2004-07-01"))</example> <example test="no" result="-P2D">subtract-dates-yielding-dayTimeDuration(xs:date("2004-02-28"), xs:date("2004-03-01"))</example> <example test="no" result="P6M">subtract-dates-yielding-yearMonthDuration(xs:date("2005-01-01"), xs:date("2004-07-01"))</example> <example test="no" result="P1Y6M">subtract-dates-yielding-yearMonthDuration(xs:date("2005-12-31"), xs:date("2004-06-30"))</example> <example test="no" result="P1Y1M">subtract-dates-yielding-yearMonthDuration(xs:date("2005-03-31"), xs:date("2004-02-29"))</example> <example test="no" result="-P1M">subtract-dates-yielding-yearMonthDuration(xs:date("2004-11-01"), xs:date("2004-12-15"))</example> <example test="no" result="-P11M">subtract-dateTimes-yielding-yearMonthDuration(xs:dateTime("2005-01-01T12:00:00Z"), xs:dateTime("2004-01-01T18:00:00Z"))</example> </group> <group section="sum"> <example result="10 (xs:integer)">sum((1, 2, 3, 4))</example> <example result="10.5 (xs:decimal)">sum((1, 2, 3, 4.5))</example> <example result="11.0e0 (xs:double)">sum((1, 2, 3.5e0, 4.5))</example> <example result="0.0e0 (xs:double)">sum(())</example> <example test="no" result="0 (xs:integer)">sum((), 0)</example> <example test="no" result="P4DT12H">sum(xdt:dayTimeDuration("P3D"), xdt:dayTimeDuration("PT36H"))</example> <example test="no" result="PT0S">sum((), xdt:dayTimeDuration("PT0S"))</example> </group> <group section="timezone-from-date/time"> <example result=" ()">timezone-from-date(xs:date("2004-02-28"))</example> <example result="-PT6H">timezone-from-dateTime(xs:dateTime("2004-02-28T13:00:00-06:00"))</example> <example result="PT1H">timezone-from-time(xs:time("13:00:00+01:00"))</example> <example result="PT0S">timezone-from-dateTime(xs:dateTime("2004-07-31T23:00:00Z"))</example> </group> <group section="tokenize"> <example result="'Go', 'home', 'Jack', ''">tokenize("Go home, Jack!", "\W+")</example> <example result="'abc', 'def', ''">tokenize("abc[NL]def[XY]", "\[.*?\]")</example> </group> <group section="translate"> <example result="ABA12">translate("aba12", "abcd", "ABCD")</example> <example result="aba">translate("aba121", "12", "")</example> <example result="a/b/c.xml">translate("a\b\c.xml", "\", "/")</example> <example result="5.000,00">translate("5,000.00", ".,", ",.")</example> </group> <group section="upper-case"> <example result="SUNDAY">upper-case("Sunday")</example> <example result="2+2">upper-case("2+2")</example> <example result="C�SAR">upper-case("c�sar")</example> </group> <group section="year-from-date/time"> <example result="2004">year-from-date(xs:date("2004-02-28"))</example> <example result="1969">year-from-dateTime(xs:dateTime("1969-07-20T16:17:00-04:00"))</example> </group> </chapter> </xpath-examples>
(C) Æliens 20/2/2008
You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.