XPath 튜토리얼login
XPath 튜토리얼
작가:php.cn  업데이트 시간:2022-04-20 14:10:21

XPath, XQuery 및 XSLT 함수


XPath, .

함수 참조 매뉴얼
    < li>

    액세스


  • 오류 및 추적

    • 存取

    • 错误和跟踪

    • 数值

    • 字符串

    • AnyURI

    • 逻辑

    • 持续时间/日期/时间

    • QName

    • 节点

    • 序列

    • Context

  • 문자열 lamp.gif

  • AnyURI

  • lamp.gif 논리

  • 기간/날짜/시간

  • Q이름
  • 名称说明
    fn:node-name(node)返回参数节点的节点名称。
    fn:nilled(node)返回是否拒绝参数节点的布尔值。
    fn:data(item.item,...)接受项目序列,并返回原子值序列。
    • fn:base-uri()

    • fn:base-uri(node)

    返回当前节点或指定节点的 base-uri 属性的值。
    fn:document-uri(node)返回指定节点的 document-uri 属性的值。
    노드

  • 시퀀스
  • 컨텍스트
    名称说明
    • fn:error()

    • fn:error(error)

    • fn:error(error,description)

    • fn:error(error,description,error-object)

    例子:error(fn:QName('http://example.com/test', 'err:toohigh'), 'Error: Price is too high')

    结果:向外部处理环境返回 http://example.com/test#toohigh 以及字符串 "Error: Price is too high"。

    fn:trace(value,label)用于对查询进行 debug。
<🎜><🎜> 함수 네임스페이스의 기본 접두사는 fn:<🎜><🎜>< 🎜>입니다. 함수 네임스페이스의 URI는 다음과 같습니다. http://www.w3.org/2005/xpath-functions<🎜><🎜><🎜>액세스 함수<🎜><🎜>
이름설명
fn:node-name(node)매개변수 노드의 노드 이름을 반환합니다.
fn:nilled(node)매개변수 노드를 거부할지 여부에 대한 부울 값을 반환합니다.
fn:data(item.item,...)항목 시퀀스를 승인하고 원자 값 시퀀스를 반환합니다.
  • <🎜>fn:base-uri()<🎜>
  • < 🎜>fn:base-uri(node)<🎜>
현재 노드 또는 지정된 노드의 base-uri 속성 값을 반환합니다.
fn:document-uri(node)지정된 노드의 document-uri 속성 값을 반환합니다.
<🎜><🎜>오류 및 추적 기능<🎜><🎜>
이름설명
  • <🎜>fn:오류()<🎜>
  • <🎜>fn:오류(오류)<🎜>
  • <🎜>fn: 오류(오류,설명)<🎜>
  • <🎜>fn:오류(오류,설명,오류 개체)<🎜>
< 🎜>예: error(fn:QName('http://example.com/test', 'err:toohigh'), '오류: 가격이 너무 높습니다.')<🎜><🎜>결과: 외부에서 환경을 처리합니다. http://example.com/test#toohigh 및 "오류: 가격이 너무 높습니다"라는 문자열을 반환합니다. <🎜>
fn:trace(value,label)는 쿼리를 디버깅하는 데 사용됩니다.

수치 관련 기능

名称说明
fn:number(arg)

返回参数的数值。参数可以是布尔值、字符串或节点集。

例子:number('100')

结果:100

fn:abs(num)

返回参数的绝对值。

例子:abs(3.14)

结果:3.14

例子:abs(-3.14)

结果:3.14

fn:ceiling(num)

返回大于 num 参数的最小整数。

例子:ceiling(3.14)

结果:4

fn:floor(num)

返回不大于 num 参数的最大整数。

例子:floor(3.14)

结果:3

fn:round(num)

把 num 参数舍入为最接近的整数。

例子:round(3.14)

结果:3

fn:round-half-to-even()

例子:round-half-to-even(0.5)

结果:0

例子:round-half-to-even(1.5)

结果:2

例子:round-half-to-even(2.5)

结果:2

문자열 관련 기능

이름설명
fn : string(arg)

인수의 문자열 값을 반환합니다. 매개변수는 숫자, 논리값 또는 노드 세트일 수 있습니다.

예: 문자열(314)

결과: "314"

fn:codepoints-to-string(int,int, ...)

코드 포인트 시퀀스를 기반으로 문자열을 반환합니다.

예: 코드포인트-문자열(84, 104, 233, 114, 232, 115, 101)

결과: 'Thérèse'

fn:string-to-codepoints(string)

문자열을 기반으로 일련의 코드 포인트를 반환합니다.

예: 문자열-코드 포인트("Thérèse")

결과: 84, 104, 233, 114, 232, 115, 101

fn:codepoint-equal(comp1,comp2)유니코드 코드 포인트 비교에 따르면 comp1의 값이 comp2의 값과 같으면 true를 반환합니다. (http://www.w3.org/2005/02/xpath-functions/collation/codepoint), 그렇지 않으면 false가 반환됩니다.
  • fn:비교(comp1,comp2)

  • fn:비교(comp1,comp2,collation) )

comp1이 comp2보다 작으면 -1을 반환합니다. comp1이 comp2와 같으면 0이 반환됩니다. comp1이 comp2보다 크면 1을 반환합니다. (사용된 비교 규칙에 따라 다름)

예: 비교('ghi', 'ghi')

결과: 0

fn:concat(string,string, ...)

문자열의 연결을 반환합니다.

예: concat('XPath ','is ','FUN!')

결과: 'XPath is FUN!'

fn:string-join((string,string,...),sep)

sep 매개 변수를 구분 기호로 사용하여 문자열 매개 변수가 연결된 후 문자열을 반환합니다.

예: string-join(('We', 'are', 'having', 'fun!'), ' ')

결과: '우리는 즐거운 시간을 보내고 있습니다!'

예: string-join(('We', 'are', 'having', 'fun!'))

결과: 'Wearehavingfun!'

예: string-join((), 'sep')

결과: ''

  • fn:substring(string ,start,len)

  • fn:substring(string,start)

다음부터 시작하여 지정된 값을 반환합니다. 시작 위치 하위 문자열의 길이입니다. 첫 번째 문자의 인덱스는 1입니다. len 인수가 생략되면 문자열의 시작 위치부터 끝까지 부분 문자열이 반환됩니다.

예: substring('Beatles',1,4)

결과: 'Beat'

예: substring('Beatles',2)

결과: 'eatles'

  • fn:string-length(string)

  • fn:string-length()

지정된 문자열의 길이를 반환합니다. 문자열 인수가 없으면 현재 노드의 문자열 값 길이를 반환합니다.

예: string-length('Beatles')

결과: 7

  • fn:normalize-space(string)

  • fn:normalize-space()

지정된 문자열의 시작과 끝의 공백을 제거하고 내부 공백 시퀀스를 모두 하나로 바꾼 후 결과를 반환합니다. 문자열 매개변수가 없으면 현재 노드가 처리됩니다.

예: Normalize-space(' The XML ')

결과: 'The XML'

fn:normalize-unicode( )유니코드 정규화를 수행합니다.
fn:upper-case(string)

문자열 매개변수를 대문자로 변환합니다.

예: 대문자('The XML')

결과: 'THE XML'

fn:lower-case( string)

문자열 매개변수를 소문자로 변환합니다.

예: 소문자('The XML')

결과: 'the xml'

fn:translate(string1, string2,string3)

string1의 string2를 string3으로 바꿉니다.

예: 번역('12:30','30','45')

결과: '12:45'

예: 번역('12: 30','03','54')

결과: '12:45'

예: 번역('12:30','0123','abcd')

결과: 'bc:da'

fn:escape-uri(stringURI,esc-res)

예: escape -uri("http://example.com/test#car", true())

결과: "http%3A%2F%2Fexample.com%2Ftest#car"

예: escape-uri("http://example.com/test#car", false())

결과: "http://example.com/test#car"

예: escape-uri ("http://example.com/~bébé", false())

결과: "http://example.com/~b%C3%A9b%C3% A9"

fn:contains(string1,string2)

string1에 string2가 포함되어 있으면 true를 반환하고 그렇지 않으면 false를 반환합니다.

예: 포함('XML','XM')

결과: true

fn:starts-with(string1, string2)

string1이 string2로 시작하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: start-with('XML','X')

결과: true

fn:ends-with( string1,string2)

string1이 string2로 끝나면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: end-with('XML','X')

결과: false

fn:substring-before( string1,string2)

string1에 나타나기 전 string2의 하위 문자열을 반환합니다.

예: 하위 문자열 이전('12/10','/')

결과: '12'

fn: substring-after(string1,string2)

string2가 string1에 나타난 이후의 하위 문자열을 반환합니다.

예: 하위 문자열 이후('12/10','/')

결과: '10'

fn: match(string,pattern)

문자열 매개변수가 지정된 패턴과 일치하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: match("Merano", "ran")

결과: true

fn:replace(string,pattern,replace)

지정된 패턴을 교체 매개변수로 바꾸고 결과를 반환합니다.

예: 바꾸기("Bella Italia", "l", "*")

결과: 'Be**a Ita*ia'

예: 바꾸기( "Bella Italia", "l", "")

결과: 'Bea Itaia'

fn:tokenize(string,pattern)

예: tokenize("XPath is fun", "s+")

결과: ("XPath", "is", "fun")

anyURI에 대한 함수

이름설명
名称说明
fn:resolve-uri(relative,base) 

fn:resolve-uri(relative,base)

名称说明
fn:boolean(arg)返回数字、字符串或节点集的布尔值。
fn:not(arg)

首先通过 boolean() 函数把参数还原为一个布尔值。如果该布尔值为 false,则返回 true,否则返回 true。

例子:not(true())

结果:false

fn:true()

返回布尔值 true。

例子:true()

结果:true

fn:false()

返回布尔值 false。

例子:false()

结果:false

<🎜><🎜><🎜><🎜><🎜>부울 값에 대한 함수<🎜><🎜><🎜><🎜><🎜>fn:boolean(arg)<🎜><🎜>숫자 반환 , 문자열 또는 노드 세트의 부울 값입니다. <🎜><🎜><🎜><🎜>fn:not(arg)<🎜><🎜><🎜>먼저 boolean() 함수를 사용하여 매개변수를 부울 값으로 복원합니다. 부울 값이 false이면 true를 반환하고, 그렇지 않으면 true를 반환합니다. <🎜><🎜>예: not(true())<🎜><🎜>결과: false<🎜><🎜><🎜><🎜><🎜>fn:true()<🎜><🎜>< 🎜>부울 true를 반환합니다. <🎜><🎜>예: true()<🎜><🎜>결과: true<🎜><🎜><🎜><🎜><🎜>fn:false()<🎜><🎜><🎜> 반환 부울 거짓. <🎜><🎜>예: false()<🎜><🎜>결과: false<🎜><🎜><🎜><🎜><🎜>

기간, 날짜, 시간에 대한 기능

날짜, 시간, 기간에 대한 구성 요소 추출 기능

이름설명
이름설명
fn:dateTime(date,time)매개변수를 날짜 및 시간으로 변환합니다.
fn:years-from-duration(datetimedur)표준 어휘 표기법으로 표현된 인수 값의 연도 부분의 정수를 반환합니다.
fn:months-from-duration(datetimedur)표준 어휘 표기법으로 표현된 매개변수 값의 월 부분의 정수를 반환합니다.
fn:days-from-duration(datetimedur) 표준 어휘 표기법으로 표현된 인수 값의 일 부분의 정수를 반환합니다.
fn:hours-from-duration(datetimedur) 표준 어휘 표기법으로 표현된 매개변수 값의 시간 부분을 정수로 반환합니다.
fn: Minutes-from-duration(datetimedur) 매개변수 값의 분 부분을 표준 어휘 표기법으로 표현된 정수로 반환합니다.
fn:seconds-from-duration(datetimedur) 표준 어휘 표기법으로 표현된 매개변수 값의 분 부분 중 소수 부분을 반환합니다.
fn:year-from-dateTime(datetime)

매개변수 로컬 값의 연도 부분의 정수를 반환합니다.

예: year-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

결과: 2005

fn:month-from-dateTime(datetime)

매개변수 로컬 값의 월 부분의 정수를 반환합니다.

예: Month-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

결과: 01

fn:day-from-dateTime(datetime)

매개변수 로컬 값의 날짜 부분의 정수를 반환합니다.

예: day-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

결과: 10

fn:hours-from-dateTime(datetime)

매개변수 로컬 값의 시간 부분을 정수로 반환합니다.

예: hour-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

결과: 12

fn: Minutes-from-dateTime(datetime)

매개변수의 로컬 값 중 분 부분의 정수를 반환합니다.

예: 분-from-dateTime(xs:dateTime("2005-01-10T12:30-04:10"))

결과: 30

fn:seconds-from-dateTime(datetime)

매개변수 로컬 값의 초 부분을 10진수로 반환합니다.

예: 초-날짜 시간(xs:dateTime("2005-01-10T12:30:00-04:10"))

결과: 0

fn:timezone-from-dateTime(datetime)매개변수의 시간대 부분(있는 경우)을 반환합니다.
fn:year-from-date(date)

매개변수의 로컬 값에서 연도를 나타내는 정수를 반환합니다.

예: 연도-날짜(xs:date("2005-04-23"))

결과: 2005

fn:month-from-date(date)

매개변수의 로컬 값에서 월을 나타내는 정수를 반환합니다.

예: 월-날짜(xs:date("2005-04-23"))

결과: 4

fn: day-from-date(date)

매개변수의 로컬 값으로 날짜를 나타내는 정수를 반환합니다.

예: day-from-date(xs:date("2005-04-23"))

결과: 23

fn:timezone-from-date(date)매개변수의 시간대 부분(있는 경우)을 반환합니다.
fn:hours-from-time(time)

매개변수 로컬 값의 시간 부분을 나타내는 정수를 반환합니다.

예: 시간부터 시간(xs:time("10:22:00"))

결과: 10

fn: Minutes-from-time(time)

매개변수 로컬 값의 분 부분을 나타내는 정수를 반환합니다.

예: 분-시간(xs:time("10:22:00"))

결과: 22

fn:seconds-from-time(time)

매개변수의 로컬 값에서 초 부분을 나타내는 정수를 반환합니다.

예: 초부터 시간(xs:time("10:22:00"))

결과: 0

fn:timezone-from-time(time)매개변수의 시간대 부분(있는 경우)을 반환합니다.
fn:adjust-dateTime-to-timezone(datetime,timezone)timezone 매개변수가 비어 있으면 시간대 없이 dateTime을 반환합니다. 그렇지 않으면 시간대가 포함된 dateTime이 반환됩니다.
fn:adjust-date-to-timezone(date,timezone)timezone 매개변수가 비어 있으면 시간대 없이 날짜를 반환합니다. 그렇지 않으면 시간대가 포함된 날짜가 반환됩니다.
fn:adjust-time-to-timezone(time,timezone)timezone 매개변수가 비어 있으면 시간대가 없는 시간이 반환됩니다. 그렇지 않으면 시간대를 사용하여 시간을 반환합니다.

QName 관련 기능

이름설명
名称说明
fn:QName() 
fn:local-name-from-QName() 
fn:namespace-uri-from-QName() 
fn:namespace-uri-for-prefix() 
fn:in-scope-prefixes() 
fn:resolve-QName() 
<🎜><🎜>fn:QName()<🎜><🎜> < 🎜><🎜><🎜><🎜>fn:local-name-from-QName()<🎜><🎜> <🎜><🎜><🎜><🎜>fn:namespace-uri-from-QName( )<🎜><🎜> <🎜><🎜><🎜><🎜>fn:namespace-uri-for-prefix()<🎜><🎜> <🎜><🎜><🎜><🎜>fn : 범위 내 접두사()<🎜><🎜> <🎜><🎜><🎜><🎜>fn:resolve-QName()<🎜><🎜> <🎜><🎜><🎜><🎜 >

노드 관련 기능

名称说明
  • fn:name()

  • fn:name(nodeset)

返回当前节点的名称或指定节点集中的第一个节点。
  • fn:local-name()

  • fn:local-name(nodeset)

返回当前节点的名称或指定节点集中的第一个节点 - 不带有命名空间前缀。
  • fn:namespace-uri()

  • fn:namespace-uri(nodeset)

返回当前节点或指定节点集中第一个节点的命名空间 URI。
fn:lang(lang)

如果当前节点的语言匹配指定的语言,则返回 true。

例子:Lang("en") is true for <p xml:lang="en">...</p>

例子:Lang("de") is false for <p xml:lang="en">...</p>

  • fn:root()

  • fn:root(node)

返回当前节点或指定的节点所属的节点树的根节点。通常是文档节点。

시퀀스 관련 기능

일반 기능

이름설명
fn:index-of((item,item,...),searchitem)

searchitem 매개변수와 동일한 항목 순서를 반환합니다. 위치.

예: index-of ((15, 40, 25, 40, 10), 40)

결과: (2, 4)

예: index-of (("a", "dog", "and", "a", "duck"), "a")

결과 (1, 4)

예: index-of ((15, 40, 25, 40, 10), 18)

결과: ()

fn:remove((item,item,. ..),position)

item 매개변수로 구성된 새 시퀀스를 반환하는 동시에 position 매개변수로 지정된 항목을 삭제합니다.

예: 제거(("ab", "cd", "ef"), 0)

결과: ("ab", "cd", "ef")

예: 제거(("ab", "cd", "ef"), 1)

결과: ("cd", "ef")

예: 제거( ("ab", "cd", "ef"), 4)

결과: ("ab", "cd", "ef")

fn:empty(item,item,...)

매개변수 값이 빈 시퀀스이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: 비어 있음(remove(("ab", "cd"), 1))

결과: false

fn :exists(item,item,...)

매개변수 값이 빈 시퀀스가 ​​아닌 경우 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: 존재함(remove(("ab"), 1))

결과: false

fn:distinct-values ((item,item,...),collation)

유일한 고유 값을 반환합니다.

예: 고유 값((1, 2, 3, 1, 2))

결과: (1, 2, 3)

fn:insert-before((item,item,...),pos,inserts)

지정된 위치에 삽입을 삽입하는 동안 항목 매개변수로 구성된 새 시퀀스를 반환합니다. pos 매개변수에 의한 매개변수의 값.

예: insert-before(("ab", "cd"), 0, "gh")

결과: ("gh", "ab", "cd")

예: insert-before(("ab", "cd"), 1, "gh")

결과: ("gh", "ab", "cd")

예: insert-before(("ab", "cd"), 2, "gh")

결과: ("ab", "gh", "cd")

예: insert-before(("ab", "cd"), 5, "gh")

결과: ("ab", "cd", "gh")

fn:reverse((item,item,...))

지정된 항목의 역순을 반환합니다.

예: reverse(("ab", "cd", "ef"))

결과: ("ef", "cd", "ab")

예: reverse(("ab"))

결과: ("ab")

fn:subsequence((item,item,...),start,len)

start 매개변수로 지정된 위치를 반환하고 항목 순서, 순서 길이는 len 매개변수에 의해 지정됩니다. 첫 번째 항목의 위치는 1입니다.

예: 하위 시퀀스(($item1, $item2, $item3,...), 3)

결과: ($item3,...)

예 :subsequence(($item1, $item2, $item3, ...), 2, 2)

결과: ($item2, $item3)

fn:unordered((item,item,...))구현에 따라 결정된 순서로 항목을 반환합니다.

시퀀스 용량 테스트 기능

이름설명
名称说明
fn:zero-or-one(item,item,...)如果参数包含零个或一个项目,则返回参数,否则生成错误。
fn:one-or-more(item,item,...)如果参数包含一个或多个项目,则返回参数,否则生成错误。
fn:exactly-one(item,item,...)如果参数包含一个项目,则返回参数,否则生成错误。

fn:zero-or-one(item,item ,...)

매개변수에 항목이 0개 또는 1개 포함되어 있으면 매개변수를 반환하고, 그렇지 않으면 오류를 생성합니다.
名称说明
fn:deep-equal(param1,param2,collation)如果 param1 和 param2 与彼此相等(deep-equal),则返回 true,否则返回 false。

fn:one-or-more(item,item,...)

名称说明
fn:count((item,item,...))返回节点的数量。
fn:avg((arg,arg,...))返回参数值的平均数。 例子:avg((1,2,3)) 结果:2
fn:max((arg,arg,...))返回大于其它参数的参数。 例子:max((1,2,3)) 结果:3 例子:max(('a', 'k')) 结果:'k'
fn:min((arg,arg,...))返回小于其它参数的参数。 例子:min((1,2,3)) 结果:1 例子:min(('a', 'k')) 结果:'a'
fn:sum(arg,arg,...)返回指定节点集中每个节点的数值的总和。
매개변수에 하나 이상의 항목이 포함되어 있으면 매개변수를 반환하고, 그렇지 않으면 오류를 생성합니다. <🎜><🎜><🎜><🎜>fn:exactly-one(item,item,...)<🎜><🎜>항목이 포함된 경우 매개변수를 반환하고, 그렇지 않으면 오류를 생성합니다. <🎜><🎜><🎜><🎜><🎜><🎜>같음, 결합, 교차 및 제외<🎜><🎜><🎜><🎜><🎜>fn:deep-equal(param1,param2 ,collation)<🎜><🎜>param1과 param2가 서로 같으면(심층 동일) true를 반환하고, 그렇지 않으면 false를 반환합니다. <🎜><🎜><🎜><🎜><🎜><🎜>전체 기능<🎜><🎜>
이름설명
<🎜><🎜><🎜>fn:count((item,item,...)) <🎜><🎜>노드 수를 반환합니다. <🎜><🎜><🎜><🎜>fn:avg((arg,arg,...))<🎜><🎜>매개변수 값의 평균을 반환합니다. 예: 평균((1,2,3)) 결과: 2<🎜><🎜><🎜><🎜>fn:max((arg,arg,...))<🎜><🎜>다른 매개변수보다 큰 매개변수를 반환합니다. 예: 최대((1,2,3)) 결과: 3 예: max(('a', 'k')) 결과: 'k'<🎜><🎜><🎜><🎜>fn:min((arg,arg,...))<🎜><🎜>다른 매개변수보다 작은 매개변수를 반환합니다. 예: 최소((1,2,3)) 결과: 1 예: min(('a', 'k')) 결과: 'a'<🎜><🎜><🎜><🎜>fn:sum(arg,arg,...)<🎜><🎜>지정된 노드에 있는 각 노드의 값의 합을 반환합니다. 세트. <🎜><🎜><🎜><🎜>

시퀀스 생성 함수

이름설명
名称说明
fn:id((string,string,...),node)Returns a sequence of element nodes that have an ID value equal to the value of one or more of the values specified in the string argument
fn:idref((string,string,...),node)Returns a sequence of element or attribute nodes that have an IDREF value equal to the value of one or more of the values specified in the string argument
fn:doc(URI) 
fn:doc-available(URI)如果 doc() 函数返回文档节点,则返回 true,否则返回 false。
  • fn:collection()

  • fn:collection(string)

 

컨텍스트 함수

名称说明
fn:position()

返回当前正在被处理的节点的 index 位置。

例子://book[position()<=3]

结果:选择前三个 book 元素

fn:last()

返回在被处理的节点列表中的项目数目。

例子://book[last()]

结果:选择最后一个 book 元素

fn:current-dateTime()返回当前的 dateTime(带有时区)。
fn:current-date()返回当前的日期(带有时区)。
fn:current-time()返回当前的时间(带有时区)。
fn:implicit-timezone()返回隐式时区的值。
fn:default-collation()返回默认对照的值。
fn:static-base-uri()返回 base-uri 的值。

PHP 중국어 웹사이트