이 문서는 지원되지 않는 버전의 스포츠 토토 사이트을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다4CL2토토 캔CL29버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

F.34. 스포츠 토토 사이트2

the스포츠 토토 사이트2모듈은 xpath를 제공합니다 쿼리 및 XSLT 기능.

F.34.1. 감가 상각 통지

From스포츠 토토 사이트8.3 on, SQL/XML을 기반으로 XML 관련 기능이 있습니다 핵심 서버의 표준. 그 기능은 XML을 다룹니다 구문 확인 및 XPath 쿼리는이 모듈입니다. 그 이상이지만 API는 전혀 호환되지 않습니다. 그것은 이 모듈은 postgresql 8.4 in에서 제거 될 계획입니다. 새로운 표준 API의 호의, 따라서 시도하는 것이 좋습니다. 응용 프로그램 변환. 당신이 그것을 발견한다면 이 모듈의 기능은 적절하게 사용할 수 없습니다. 최신 API와 함께 양식을 작성하십시오. 문제를 다음과 같이 설명하십시오. 부족이 될 수 있도록 pgsql-hackers@postgresql.org 주소.

F.34.2. 기능 설명

이러한 기능은 간단한 스포츠 토토 사이트 구문 분석을 제공합니다 xpath 쿼리. 모든 인수는 유형입니다텍스트, 그래서 표시되지 않은 간결함.

표 F-37. 기능

스포츠 토토 사이트_IS_WELL_FORMED (Document) RECINGS BOOL

이것은 매개 변수의 문서 텍스트를 구문 분석합니다 문서가 잘 형성된 XML 인 경우 true를 반환합니다. (참고 : 스포츠 토토 사이트 8.2 이전에는이 기능이있었습니다 라고 불리는스포츠 토토 사이트_valid (). 그것은 타당성 이후의 잘못된 이름입니다 전형은 XML에서 다른 의미를 갖습니다. 그만큼 이전 이름은 여전히 사용 가능하지만 더 이상 사용되지 않습니다.)

xpath_string (document, query) 텍스트를 반환합니다
        xpath_number (문서, 쿼리)는 float4를 반환합니다
        xpath_bool (문서, 쿼리) BOOL을 반환

이 함수는 xpath 쿼리를 평가합니다 문서를 제공하고 결과를 The 지정된 유형.

xpath_nodeset (문서, 쿼리, TopTag, ItemTag) 텍스트를 반환

이것은 문서의 쿼리를 평가하고 랩핑합니다 XML 태그가 발생합니다. 결과가 다수 인 경우 출력은 다음과 같습니다.

<poptag <iteletag value 1 스포츠 토토 사이트 조각이 될 수 있습니다 </itemtag <Ittag value 2 .... </itemtag </toptag

TopTag 또는 ItemTag가 빈 문자열 인 경우 관련 태그는 생략됩니다.

xpath_nodeset (문서, 쿼리) 텍스트를 반환

xpath_nodeset처럼 (문서, 쿼리, TopTag, ItemTag) 그러나 결과는 두 태그를 모두 생략합니다.

xpath_nodeset (문서, 쿼리, ItemTag) 텍스트를 반환

xpath_nodeset처럼 (문서, 쿼리, TopTag, ItemTag) 그러나 결과는 Toptag를 생략합니다.

xpath_list (문서, 쿼리, 분리기) 텍스트를 반환

이 함수는 분리 된 여러 값을 반환합니다 지정된 분리기, 예를 들어값 1, 값 2, 값 3분리기 인 경우 이다,.

xpath_list (문서, 쿼리) 텍스트를 반환
이것은 위의 함수를위한 래퍼입니다,분리기로

F.34.3.xpath_table

xpath_table (텍스트 키, 텍스트 문서, 텍스트 관계, 텍스트 xpaths, 텍스트 기준)을 반환합니다.

xpath_table는 테이블입니다 각 세트에서 XPath 쿼리 세트를 평가하는 함수 문서의 결과를 테이블로 반환합니다. 기본 원본 문서 테이블의 키 필드는 결과 세트가 쉽게 조인에 사용됩니다.

표 F-38. 매개 변수

이름의 이름"키"필드 - 이것은 첫 번째로 사용되는 필드입니다. 출력 테이블의 열, 즉 각 출력 행이 온 레코드 (참고 참조 아래의 여러 값에 대해)

문서

XML을 포함하는 필드의 이름 문서

관계

테이블 또는 뷰의 이름 서류

xpaths

하나 이상의 Xpath 표현식, 분리|

기준

where 절의 내용. 이것은 할 수 없습니다 생략하니true또는1 = 1처리하려는 경우 관계의 모든 행

이 매개 변수 (XPath 문자열 제외)는 정당합니다 일반 SQL Select 문으로 대체하므로 일부가 있습니다. 유연성 - 진술은입니다.

<key, <cument를 선택하십시오 <관계 여기서 <Criteria

따라서 해당 매개 변수가 될 수 있습니다무엇이든유효합니다 특정 위치. 이 선택의 결과는 필요합니다 정확히 두 개의 열을 반환합니다 (시도하지 않는 한 키 또는 문서에 대한 여러 필드를 나열하십시오). 이것을 조심하십시오 단순한 접근 방식은 귀하가 검증해야합니다 SQL 주입 공격을 피하기 위해 사용자가 공급 한 값.

함수는 a에서 사용해야합니다.From표현,as출력 열을 지정하려는 조항; ~을 위한 예

선택 *에서
xpath_table ( 'article_id',
            'article_xml',
            '조항',
            '/기사/저자 |/기사/페이지 |/기사/제목',
            'date_entered' ''2003-01-01 '' ')
as t (article_id 정수, 저자 텍스트, page_count 정수, 제목 텍스트);

theas조항은 이름을 정의합니다 출력 테이블의 열 유형. 첫 번째는입니다."키"필드와 나머지는 해당합니다 XPath 쿼리에. XPath 쿼리가 더 많은 경우 결과 열, 추가 쿼리는 무시됩니다. 있다면 xpath 쿼리보다 더 많은 결과 열이 있습니다. 추가 열은 null.

이 예제는를 정의한다는 것을 알 수 있습니다.page_count정수로서의 결과 열. 그만큼 함수는 내부적으로 문자열 표현을 처리합니다 당신은 당신이 출력에서 정수를 원한다고 말하면 XPath 결과의 문자열 표현 및 스포츠 토토 사이트 사용 입력 기능은 정수 (또는 무엇이든 입력as조항 요청). 오류 이 작업을 수행 할 수 없으면 결과가 발생합니다. 예를 들어 결과가 비어 - 그래서 당신은 그냥 고집하고 싶을 수도 있습니다텍스트데이터가 있다고 생각하는 경우 열 유형으로 모든 문제.

전화select진술 반드시 그냥 일지는 안됩니다선택 *- 이름 또는 가입으로 출력 열을 참조 할 수 있습니다. 다른 테이블에. 이 함수는 가상 테이블을 생성합니다 원하는 작업을 수행 할 수 있습니다 (예 : 집계, 결합, 정렬 등). 그래서 우리는 또한 가질 수 있습니다 :

T.Title, P.FullName, P.Email을 선택하십시오
xpath_table에서 ( 'article_id', 'article_xml', 'articles',
                 '/기사/제목 |/article/author/@id',
                 'xpath_string (article_xml,' '/article/@date' ')' '2003-03-20' '')
       t (article_id 정수, 제목 텍스트, author_id 정수),
     p
여기서 t.author_id = p.person_id;

더 복잡한 예입니다. 물론, 당신은 모두 포장 할 수 있습니다 편의를위한 관점에서 이것의.

F.34.3.1. 다중 결과

thexpath_table함수 각 XPath 쿼리의 결과가 다중 값, 따라서 함수에 의해 반환 된 행의 수 입력 문서의 수와 같지 않을 수 있습니다. 그만큼 첫 번째 행 반환 된 첫 번째 행에는 각 쿼리의 첫 번째 결과가 포함됩니다. 두 번째 행은 각 쿼리에서 두 번째로 결과됩니다. 하나라면 쿼리의 값은 다른 것보다 값이 적고 널은 대신 돌아 왔습니다.

경우에 따라 사용자는 주어진 XPath 쿼리를 알게됩니다. 단일 결과 만 반환합니다 (아마도 고유 한 문서 식별자) - XPath 쿼리 반환과 함께 사용되는 경우 여러 결과, 단일 값 결과는 만 나타납니다 결과의 첫 번째 행에서. 이것에 대한 해결책은 다음과 같습니다 더 간단한 XPath에 대한 조인의 일부로 키 필드를 사용하십시오. 질문. 예를 들어 :

테이블 테스트 생성 (
        id int4는 null이 아닙니다.
        XML 텍스트,
        제약 PK 1 차 키 (ID)
    );

    테스트 값 (1, '<doc num = "c1"에 삽입하십시오
    <line num = "l1" <a 1 </a <b 2 </b <c 3 </c </line
    <line num = "l2" <a 11 </a <b 22 </b <c 33 </c </line
    </doc ');

    테스트 값 (2, '<doc num = "c2"에 삽입하십시오
    <line num = "l1" <a 111 </a <b 222 </b <c 333 </c </line
    <line num = "l2" <a 111 </a <b 222 </b <c 333 </c </line
    </doc ');

    *에서 선택하십시오
      xpath_table ( 'id', 'xml', 'test',
                  '/doc/num |/doc/line/@num |/doc/line/a |/doc/line/b |/doc/line/c',
                  '진실')
      AS t (ID int4, doc_num varchar (10), line_num varchar (10), Val1 Int4, Val2 Int4, Val3 Int4)
    여기서 id = 1 Doc_num, line_num의 주문

     id | doc_num | line_num | val1 | Val2 | Val3
    ----+--------+----------+------+------+------
      1 | C1 | L1 |    1 |    2 |    3
      1 |         | L2 |   11 |   22 |   33

모든 라인에서 doc_num을 얻으려면 솔루션은 두 가지를 사용하는 것입니다. xpath_table의 호출 및 결과에 가입합니다.

선택 t.*, i.doc_num from
     xpath_table ( 'id', 'xml', 'test',
                 '/doc/line/@num |/doc/line/a |/doc/line/b |/doc/line/c',
                 '진실')
       t (id int4, line_num varchar (10), val1 int4, val2 int4, val3 int4),
     xpath_table ( 'id', 'xml', 'test', '/doc/@num', 'true')))
       I로 (ID int4, doc_num varchar (10))
   여기서 i.id = t.id 및 i.id = 1
   doc_num, line_num의 주문;

    id | line_num | val1 | Val2 | val3 | doc_num
   ----+----------+------+------+------+-------
     1 | L1 |    1 |    2 |    3 | C1
     1 | L2 |   11 |   22 |   33 | C1
   (2 줄)

F.34.4. XSLT 함수

libxslt 인 경우 다음 기능을 사용할 수 있습니다 설치 :

F.34.4.1.XSLT_PROCESS

XSLT_PROCESS (텍스트 문서, 텍스트 스타일 시트, 텍스트 매개 변수) 텍스트를 반환

이 함수는 XSL 스타일 시트를 문서에 적용합니다 변형 된 결과를 반환합니다. 매개 변수는 목록입니다 변환에 사용될 매개 변수 할당, 양식에 지정a = 1, b = 2. 메모 매개 변수 구문 분석은 매우 간단한 생각입니다 : 매개 변수 값은 쉼표를 포함 할 수 없습니다!

2 파라미터 버전의도 있습니다.XSLT_PROCESS변환에 대한 매개 변수.

F.34.5. 작가

John Grey

이 모듈의 개발은 Torchbox Ltd.가 후원했습니다. (www.torchbox.com). BSD 라이센스와 동일한 BSD 라이센스가 있습니다 스포츠 토토 사이트.