Phiên bản được hỗ trợ:hiện tại(17) /16 / 15 / 14 / 13
Phiên bản phát triển:18 / Devel
Phiên bản không được hỗ trợ:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3

F.45. xml2

TheXML2Mô -đun cung cấp chức năng truy kèo bóng đá cúp c2 XPath và XSLT.

F.45.1. Thông báo từ chối

từkèo bóng đá cúp c28.3, có chức năng liên quan đến XML dựa trên tiêu chuẩn SQL/XML trong máy chủ lõi. Chức năng đó bao gồm kiểm tra cú pháp XML và truy vấn XPath, đó là những gì mô -đun này làm, và hơn thế nữa, nhưng API hoàn toàn không tương thích. Có kế hoạch rằng mô -đun này sẽ bị xóa trong phiên bản kèo bóng đá cúp c2 trong tương lai có lợi cho API tiêu chuẩn mới hơn, vì vậy bạn được khuyến khích thử chuyển đổi các ứng dụng của mình. Nếu bạn thấy rằng một số chức năng của mô -đun này không có sẵn ở dạng phù hợp với API mới hơn, vui lòng giải thích vấn đề của bạn vớiđể có thể giải quyết sự thiếu hụt.

F.45.2. Mô tả về kèo bóng đá cúp c2 chức năng

Bảng F.34Hiển thị kèo bóng đá cúp c2 chức năng được cung cấp bởi mô -đun này. kèo bóng đá cúp c2 chức năng này cung cấp kèo bóng đá cúp c2 truy vấn phân tích XML đơn giản và Xpath.

Bảng F.34.XML2Chức năng

chức năng

Mô tả

XML_VALID(Document Text) →Boolean

12054_12196xml_is_well_formed (). Tênxml_valid ()về mặt kỹ thuật không chính xác vì tính hợp lệ và tính được hình thành có ý nghĩa khác nhau trong XML.)

XPath_String12577_12582Document Text, Truy kèo bóng đá cúp c2 Text) →Text

Đánh giá truy vấn XPath trên kèo bóng đá cúp c2 được cung cấp và chuyển kết quả thànhText.

XPath_Number(Document Text, Truy kèo bóng đá cúp c2 Text) →Real

Đánh giá truy vấn XPath trên kèo bóng đá cúp c2 được cung cấp và chuyển kết quả thànhReal.

xpath_bool(Document Text, Truy kèo bóng đá cúp c2 Text) →Boolean

Đánh giá truy vấn XPath trên kèo bóng đá cúp c2 được cung cấp và chuyển kết quả thànhBoolean.

XPath_Nodeset(kèo bóng đá cúp c2 Text, Truy kèo bóng đá cúp c2 Text, TopTag Text, itemTag Text) →Text

Đánh giá truy vấn trên kèo bóng đá cúp c2 và gói kết quả trong các thẻ XML. Nếu kết quả là đa trị, đầu ra sẽ trông giống như:

<TopTag
<itemTag Giá trị 1 có thể là một đoạn XML </itemTag
<itemTag Giá trị 2 .... </itemTag
</toptag

NếuTopTaghoặcitemTaglà một chuỗi trống, thẻ có liên quan bị bỏ qua.

15195_15210(Document Text, Truy kèo bóng đá cúp c2 Text, itemTag Text) →Text

nhưxpath_nodeset (kèo bóng đá cúp c2, truy vấn, toptag, itemTag)Nhưng kết quả bỏ quaTopTag.

xpath_nodeset(Document Text, Truy kèo bóng đá cúp c2 Text) →Text

nhưxpath_nodeset (kèo bóng đá cúp c2, truy vấn, toptag, itemTag)Nhưng kết quả bỏ qua cả hai thẻ.

XPath_List(kèo bóng đá cúp c2 Text, Truy kèo bóng đá cúp c2 Text, phân tách Text) →Text

Đánh giá truy vấn trên kèo bóng đá cúp c2 và trả về nhiều giá trị được phân tách bởi bộ phân cách được chỉ định, ví dụGiá trị 1, Giá trị 2, Giá trị 3nếuphân tách,.

xpath_list(Document Text, Truy kèo bóng đá cúp c2 Text) →Text

Đây là một trình bao bọc cho chức năng trên sử dụng,làm dấu phân cách.


F.45.3.xpath_table

17909_18013

xpath_table18066_18379Bảng F.35.

Bảng F.35.xpath_tabletham số

tham số Mô tả
Key

Tên kèo bóng đá cúp c2HồiKeyHồiTrường - Đây chỉ là một trường được sử dụng làm cột đầu tiên kèo bóng đá cúp c2 bảng đầu ra, tức là, nó xác định bản ghi mà mỗi hàng đầu ra xuất hiện (xem ghi chú bên dưới về nhiều giá trị)

Document

Tên của trường chứa kèo bóng đá cúp c2 XML

quan hệ

Tên của bảng hoặc xem có chứa kèo bóng đá cúp c2

Xpaths

Một hoặc nhiều biểu thức XPath, được phân tách bởi|

Tiêu chí

Nội dung kèo bóng đá cúp c2 mệnh đề WHERE. Điều này không thể được bỏ qua, vì vậy hãy sử dụngTRUEhoặc1 = 120437_20491


20625_20774

20806_20889

Vì vậy, kèo bóng đá cúp c2 tham số đó có thể là20960_20970hợp lệ ở các vị trí cụ thể đó. Kết quả từ lựa chọn này cần trả về chính xác hai cột (nó sẽ trừ khi bạn cố gắng liệt kê nhiều trường cho khóa hoặc kèo bóng đá cúp c2). Coi chừng rằng cách tiếp cận đơn giản này đòi hỏi bạn phải xác nhận bất kỳ giá trị do người dùng nào cung cấp để tránh các cuộc tấn công tiêm SQL.

Hàm phải được sử dụng trong AtừBiểu thức, vớiASmệnh đề để chỉ định kèo bóng đá cúp c2 cột đầu ra; Ví dụ

Chọn * Từ
xpath_table ('article_id',
            'Bài báo_xml',
            'Bài báo',
            '/Bài báo/Tác giả |/Bài báo/Trang |/Bài báo/Tiêu đề',
            'Date_Endered' '2003-01-01' '')
Như t (intent_id integer, văn bản tác giả, số nguyên trang_count, văn bản tiêu đề);

TheASmệnh đề xác định tên và loại của kèo bóng đá cúp c2 cột trong bảng đầu ra. Đầu tiên làKeyTrường và phần còn lại tương ứng với kèo bóng đá cúp c2 truy vấn XPath. Nếu có nhiều truy vấn XPath hơn kèo bóng đá cúp c2 cột kết quả, kèo bóng đá cúp c2 truy vấn bổ sung sẽ bị bỏ qua. Nếu có nhiều cột kết quả hơn kèo bóng đá cúp c2 truy vấn XPath, kèo bóng đá cúp c2 cột bổ sung sẽ không có.

Lưu ý rằng ví dụ này xác địnhpage_countCột kết quả dưới dạng số nguyên. Hàm xử lý nội bộ với các biểu diễn chuỗi, vì vậy khi bạn nói rằng bạn muốn một số nguyên trong đầu ra, nó sẽ lấy biểu diễn chuỗi của kết quả XPath và sử dụng các hàm đầu vào kèo bóng đá cúp c2 để biến nó thành một số nguyên (hoặc bất kỳ loại nàoASYêu cầu mệnh đề). Một lỗi sẽ dẫn đến nếu nó không thể làm điều này - ví dụ: nếu kết quả trống - vì vậy bạn có thể muốn chỉ bám vàoTextLà loại cột nếu bạn nghĩ rằng dữ kèo bóng đá cúp c2 của bạn có bất kỳ vấn đề nào.

Cuộc gọiChọnCâu lệnh không nhất thiết phải chỉ làChọn *- Nó có thể tham chiếu kèo bóng đá cúp c2 cột đầu ra theo tên hoặc tham gia với kèo bóng đá cúp c2 bảng khác. Hàm tạo ra một bảng ảo mà bạn có thể thực hiện bất kỳ hoạt động nào bạn muốn (ví dụ: tập hợp, nối, sắp xếp, v.v.). Vì vậy, chúng tôi cũng có thể có:

Chọn T.Title, P.Fullname, P.Email
Từ xpath_table ('artical_id', 'article_xml', 'bài viết',
                 '/Bài báo/Tiêu đề |/Bài báo/Tác giả/@ID',
                 'XPath_String (article_xml,' '/article/@date' ')' '2003-03-20' ''))
       Như t (intent_id integer, văn bản tiêu đề, số nguyên Author_id),
     tblpeopleinfo như p
WHERE T.Author_id = p.person_id;

như một ví dụ phức tạp hơn. Tất nhiên, bạn có thể bọc tất cả những điều này trong một quan điểm để thuận tiện.

F.45.3.1. Kết quả đa trị

Thexpath_tableHàm giả định rằng kết quả của mỗi truy vấn XPath có thể được đa dụng, do đó số lượng hàng được trả về bởi hàm có thể không giống với số lượng kèo bóng đá cúp c2 đầu vào. Hàng thứ nhất được trả về chứa kết quả đầu tiên từ mỗi truy vấn, hàng thứ hai là kết quả thứ hai từ mỗi truy vấn. Nếu một trong các truy vấn có ít giá trị hơn các giá trị khác, các giá trị null sẽ được trả về thay thế.

24377_24753

Tạo thử nghiệm bảng (
    ID int khóa chính,
    Văn bản XML
);

Chèn vào kèo bóng đá cúp c2 giá trị kiểm tra (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 ');

Chèn vào kèo bóng đá cúp c2 giá trị kiểm tra (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 ');

Chọn * Từ
  xpath_table ('id', 'xml', 'test',
              '/doc/@num |/doc/line/@num |/doc/line/a |/doc/line/b |/doc/line/c',
              'ĐÚNG VẬY')
  Như T (ID int, doc_num varchar (10), line_num varchar (10), val1 int, val2 int, val3 int)
WHERE ID = 1 Đặt hàng của doc_num, line_num

 ID | doc_num | line_num | val1 | val2 | val3
----+----------+----------+------+------+------
  1 | C1 | L1 |    1 |    2 |    3
  1 |         | L2 |   11 |   22 |   33

để nhậndoc_numTrên mỗi dòng, giải pháp là sử dụng hai lời mời kèo bóng đá cúp c2xpath_tablevà tham gia kết quả:

Chọn t.*, I.doc_num từ
  xpath_table ('id', 'xml', 'test',
              '/doc/line/@num |/doc/line/a |/doc/line/b |/doc/line/c',
              'ĐÚNG VẬY')
    Như t (id int, line_num varchar (10), val1 int, val2 int, val3 int),
  xpath_table ('id', 'xml', 'test', '/doc/@num', 'true'))
    Như tôi (ID int, doc_num varchar (10))
WHERE I.ID = T.ID và I.ID = 1
Đặt hàng bởi 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 hàng)

F.45.4. Chức năng XSLT

kèo bóng đá cúp c2 chức năng sau đây có sẵn nếu LibXSLT được cài đặt:

F.45.4.1.XSLT_Process

27260_27337

Hàm này áp dụng bảng kiểu XSL cho kèo bóng đá cúp c2 và trả về kết quả được chuyển đổi. Theparamlistlà danh sách kèo bóng đá cúp c2 bài tập tham số được sử dụng trong chuyển đổi, được chỉ định trong biểu mẫua = 1, b = 2. Lưu ý rằng phân tích phân tích tham số rất đơn giản: Giá trị tham số không thể chứa dấu phẩy!

Ngoài ra còn có phiên bản hai tham số kèo bóng đá cúp c2XSLT_Processkhông chuyển bất kỳ tham số nào cho phép biến đổi.

F.45.5. Tác giả

John Grey

Phát triển mô -đun này được tài trợ bởi Torchbox Ltd. (www.torchbox.com). Nó có cùng giấy phép BSD như kèo bóng đá cúp c2.

29364_29383

Nếu bạn thấy bất cứ điều gì trong kèo bóng đá cúp c2 không chính xác, không khớp Kinh nghiệm của bạn với tính năng cụ thể hoặc yêu cầu làm rõ thêm, Vui lòng sử dụngMẫu nàyĐể báo cáo vấn đề kèo bóng đá cúp c2.