Đây là hướng dẫn về XSLT nếu. Ở đây chúng ta thảo luận về phần giới thiệu, cách hoạt động của câu lệnh if XSLT? và ví dụ để hiểu rõ hơn.
Bạn đang xem : xslt hoặc ví dụ về điều kiện
Giới thiệu về XSLT if
XSLT if câu lệnh được định nghĩa là một mẫu điều kiện được sử dụng để xử lý một câu lệnh true và được coi là một câu lệnh đơn giản. Câu lệnh cung cấp một bài kiểm tra đơn giản để sử dụng liên quan đến tệp XML. Nếu một điều kiện nhất định được đáp ứng, mã tương ứng sẽ được thực thi. Nó cần một thuộc tính kiểm tra để trả về một giá trị Boolean thông qua biểu thức XPath. Nó không chấp nhận một mẫu nếu khác.
Cú pháp:
Bắt đầu khóa học phát triển phần mềm miễn phí của bạn
Phát triển web, ngôn ngữ lập trình, Kiểm tra phần mềm & amp; những người khác
Khai báo cú pháp của & lt; xsl: if & gt; được đưa ra là:
xsl: if test = "expression & gt;
& lt; // Phần THEN được thực thi ở đây & gt;
& lt; / xsl: nếu & gt;
Đây là dòng đầu tiên giải thích kiểm tra trong đó biểu thức được đánh giá, kiểm tra là bắt buộc để kiểm tra dữ liệu nguồn hoặc liệu mẫu có được thực thi hay không. Điều này sẽ dẫn đến một phần đúng.
XSLT hoạt động như thế nào nếu Tuyên bố hoạt động?
Các bước làm việc của câu lệnh if rất dễ dàng. Vì vậy, mẫu có một đầu vào và một đầu ra duy nhất. Thông tin phần tử nơi câu lệnh rơi được đưa ra ở đây. Chúng lần lượt là xsl: property, xsl: call-template, xsl: variable, xsl: for -each. Nếu mã của chúng tôi không cần bất kỳ phần tử hoặc thuộc tính nào, thì chúng tôi chỉ có thể sử dụng cấu trúc if-then cho quy trình.
& lt; Thesis & gt;
& lt; xsl: if test = "Publisher / Guide = 'Diana Cyril'" & gt;
& lt; xsl: value-of select = "'Giấy được Chọn'" / & gt;
& lt; / xsl: nếu & gt;
& lt; xsl: if test = "contains (Nhà xuất bản / Hướng dẫn, 'James')" & gt;
& lt; xsl: value-of select = "'A Best Paper Ever'" / & gt;
& lt; / xsl: nếu & gt;
& lt; / Luận văn & gt;
Đoạn mã trên xác định một câu lệnh đúng. Chúng ta có thể chèn giá trị của một biểu thức Xpath thông qua một câu lệnh value-of, điều này dẫn đến một điều kiện đúng. Phần tử value-of có thuộc tính select có cấu trúc này. Nếu XSLT cần phần khác, chúng tôi có thể sử dụng & lt; xsl: select & gt; với khối tạo mã của họ.
Để kiểm tra xem một chuỗi đã cho là NULL hay KHÔNG, định dạng sau được khởi tạo và trường hợp kiểm tra là:
& lt; xsl: if
test = "not (phần tử
tên) "& gt;
& lt; / xsl: nếu & gt;
Các & lt; nếu & gt; điều kiện kiểm tra nhiều biến đã cho thành ‘0’ và logic ở đây là:
& lt; xsl: if test = "not ((number ($ VAR_gross_bill) = 0)
và (số ($ VAR_work mỗi giờ) = 0)
và (số ($ VAR_work_midnite) = 0)
và (số ($ VAR_other_extra cho phép) = 0)) "& gt;
Điều kiện kiểm tra được đánh giá là đúng khi tất cả các biến đã cho khác 0. Nội dung khác nhau chỉ được cung cấp nếu một điều kiện nhất định được đáp ứng.
Ví dụ về XSLT nếu
Dưới đây là các ví dụ về XSLT nếu:
Tại đây, chúng tôi thực hiện các công việc trong các phiên bản XML và XSLT để đánh giá so sánh.
Ví dụ # 1
Đối với ví dụ của chúng tôi, chúng tôi đang sử dụng khái niệm sách điện tử như một XML đầu vào.
Mã:
XML:
& lt;? xml version = "1.0" encoding = "UTF-8"? & gt;
& lt; sách điện tử & gt;
& lt; dept & gt;
& lt; bkname & gt; Học Python-Cơ bản & lt; / bkname & gt;
& lt; tác giả & gt; Guido Van & lt; / author & gt;
& lt; country & gt; German & lt; / country & gt;
& lt; euro & gt; 9,90 & lt; / euro & gt;
& lt; pubyear & gt; 2001 & lt; / pubyear & gt;
& lt; / dept & gt;
& lt; dept & gt;
& lt; bkname & gt; XPath và XSLT & lt; / bkname & gt;
& lt; tác giả & gt; Peter Doug & lt; / tác giả & gt;
& lt; country & gt; Italy & lt; / country & gt;
& lt; euro & gt; 22,90 & lt; / euro & gt;
& lt; pubyear & gt; 1965 & lt; / pubyear & gt;
& lt; / dept & gt;
& lt; dept & gt;
& lt; bkname & gt; JEE Language & lt; / bkname & gt;
& lt; tác giả & gt; Evangeline Thomas & lt; / author & gt;
& lt; country & gt; German & lt; / country & gt;
& lt; euro & gt; 20,90 & lt; / euro & gt;
& lt; pubyear & gt; 1995 & lt; / pubyear & gt;
& lt; / dept & gt;
& lt; dept & gt;
& lt; bkname & gt; Shell Script Language & lt; / bkname & gt;
& lt; tác giả & gt; lousis Brain & lt; / tác giả & gt;
& lt; country & gt; Đan Mạch & lt; / country & gt;
& lt; euro & gt; 15,90 & lt; / euro & gt;
& lt; pubyear & gt; 1995 & lt; / pubyear & gt;
& lt; / dept & gt;
& lt; / ebook & gt;
XSLT:
& lt;? xml version = "1.0" encoding = "UTF-8"? & gt;
& lt; xsl: stylesheet version = "1.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" & gt;
& lt; xsl: template match = "/" & gt;
& lt; html & gt;
& lt; body & gt;
& lt; h2 & gt; Bộ sưu tập Sách điện tử của tôi & lt; / h2 & gt;
& lt; table border = "2" & gt;
& lt; tr bgcolor = "yellow" & gt;
& lt; th & gt; bkname & lt; / th & gt;
& lt; th & gt; tác giả & lt; / th & gt;
& lt; th & gt; euro & lt; / th & gt;
& lt; / tr & gt;
& lt; xsl: for-each select = "ebook / dept" & gt;
& lt; xsl: if test = "euro & gt; 15" & gt;
& lt; tr & gt;
& lt; td & gt; & lt; xsl: value-of select = "bkname" / & gt; & lt; / td & gt;
& lt; td & gt; & lt; xsl: value-of select = "author" / & gt; & lt; / td & gt;
& lt; td & gt; & lt; xsl: value-of select = "euro" / & gt; & lt; / td & gt;
& lt; / tr & gt;
& lt; / xsl: nếu & gt;
& lt; / xsl: cho-từng & gt;
& lt; / table & gt;
& lt; / body & gt;
& lt; / html & gt;
& lt; / xsl: mẫu & gt;
& lt; / xsl: bảng định kiểu & gt;
Giải thích:
- Ở đây, chúng tôi quan tâm đến việc chỉ lấy các thuộc tính bkname và author và hiển thị chúng trong một bảng được định dạng tốt bằng cách sử dụng điều kiện với phần tử euro nơi nó đáp ứng các tiêu chí euro & gt; 15 trong biểu thức XPath.
- Để đạt được điều này, chúng tôi đã sử dụng for-each để lặp lại các phần tử.
Đầu ra:
Ví dụ # 2
Câu lệnh if với các chữ cái.
Mã:
XML:
& lt;? xml version = "1.0" encoding = "UTF-8"? & gt;
& lt; fish_class & gt;
& lt; type name = "không có hàm" & gt;
& lt; bycatch & gt;
& lt; tên & gt; Cá chép & lt; / tên & gt;
& lt; Địa điểm & gt; Maldives & lt; / Địa điểm & gt;
& lt; cá béo & gt; 15 phần trăm & lt; / cá béo & gt;
& lt; Smallbone & gt; có & lt; / Smallbone & gt;
& lt; / bycatch & gt;
& lt; / type & gt;
& lt; type name = "ediblefish" & gt;
& lt; bycatch & gt;
& lt; name & gt; Blue Fin Tuna & lt; / name & gt;
& lt; Địa điểm & gt; Hoa Kỳ & lt; / Địa điểm & gt;
& lt; cá béo & gt; 5 phần trăm & lt; / fatfish & gt;
& lt; Smallbone & gt; vâng & lt; / Smallbone & gt;
& lt; / bycatch & gt;
& lt; / type & gt;
& lt; type name = "Lean Fish" & gt;
& lt; bycatch & gt;
& lt; tên & gt; cá hồi chinook & lt; / name & gt;
& lt; Địa điểm & gt; Alaska & lt; / Địa điểm & gt;
& lt; cá béo & gt; 10 phần trăm & lt; / cá béo & gt;
& lt; Smallbone & gt; không & lt; / Smallbone & gt;
& lt; / bycatch & gt;
& lt; / type & gt;
& lt; / fish_class & gt;
XSLT:
& lt;? xml version = "1.0" encoding = "UTF-8"? & gt;
& lt; xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" & gt;
& lt; xsl: template match = "type" & gt;
& lt; xsl: if test = "start-with (@name, 'j')" & gt;
Đây là kết quả phù hợp: & lt; xsl: value-of select = "./@ name" / & gt;
& lt; / xsl: nếu & gt;
& lt; / xsl: mẫu & gt;
& lt; / xsl: bảng định kiểu & gt;
Giải thích:
- Đây là mã về cách XSL chuyển đổi mã XML cho một điều kiện thử nghiệm. Nếu một điều kiện thử nghiệm là đúng, nó sẽ xử lý các hướng dẫn khác. Vì vậy, ở đây điều kiện là tên phải bắt đầu bằng chữ cái ‘J.
- Để xác định điều này, một giá trị lựa chọn được chỉ định và kiểm tra loại; nếu nó được tìm thấy, tên sẽ được ghi trên đầu ra như hình dưới đây.
Đầu ra:
Ví dụ # 3
Đánh giá với giới hạn giá trị tối thiểu và tối đa.
Mã:
XML:
& lt;? xml version = "1.0" encoding = "UTF-8"? & gt;
& lt; Dmartstore & gt;
& lt; shop category = "Tiện ích" & gt;
& lt; Model lang = "en" & gt; GT4352 & lt; / Model & gt;
& lt; Công ty & gt; Samsung & lt; / Công ty & gt;
& lt; năm & gt; 2020 & lt; / năm & gt;
& lt; ownat & gt; 120,00 & lt; / ownat & gt;
& lt; / cửa hàng & gt;
& lt; shop category = "Tiện ích" & gt;
& lt; Model lang = "en" & gt; GH5648 & lt; / Model & gt;
& lt; Công ty & gt; Redmi & lt; / Company & gt;
& lt; năm & gt; 2018 & lt; / năm & gt;
& lt; ownat & gt; 110,00 & lt; / ownat & gt;
& lt; / cửa hàng & gt;
& lt; shop category = "Tiện ích" & gt;
& lt; Model lang = "en" & gt; AMT234 & lt; / Model & gt;
& lt; Công ty & gt; Apple & lt; / Company & gt;
& lt; năm & gt; 2019 & lt; / year & gt;
& lt; ownat & gt; 130,00 & lt; / ownat & gt;
& lt; / cửa hàng & gt;
& lt; / Dmartstore & gt;
XSL:
& lt;? xml version = "1.0"? & gt;
& lt; xsl: stylesheet xmlns: xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns = "http://www.java2s.com"
xmlns: xsd = "http://www.w3.org/2000/10/XMLSchema"
phiên bản = "1.0" & gt;
& lt; xsl: output method = "xml" / & gt;
& lt; xsl: template match = "*" & gt;
& lt; xsl: tên phần tử = "{name (.)}" & gt;
& lt; xsl: for-each select = "@ *" & gt;
& lt; xsl: if test = "(name (.)! = 'minOccurs') và (name (.)! = 'maxOccurs')" & gt;
& lt; xsl: tên thuộc tính = "{name (.)}" & gt;
& lt; xsl: value-of select = "." / & gt;
& lt; / xsl: thuộc tính & gt;
& lt; / xsl: nếu & gt;
& lt; / xsl: cho-từng & gt;
& lt; xsl: apply-Template / & gt;
& lt; / xsl: phần tử & gt;
& lt; / xsl: mẫu & gt;
& lt; / xsl: bảng định kiểu & gt;
Giải thích:
- Tại đây, nếu giá trị thuộc tính “name” đáp ứng phạm vi tối thiểu và tối đa, thì giá trị mà nó mang lại sẽ được cung cấp dưới dạng.
Đầu ra:
Ví dụ # 4
Kiểm tra giá trị NIL.
XML:
& lt;? xml version = "1.0" encoding = "UTF-8"? & gt;
& lt; data_service & gt;
& lt; data xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" & amp; gt;
& lt; InBound & gt; 2006-10-15T01: 05: 00.000 & lt; / InBound & gt;
& lt; S_id & gt; 5220004 & lt; / S_id & gt;
& lt; message & gt; Client Frame & lt; / message & gt;
& lt; Lời cảm ơn & gt; NSent & lt; / Lời cảm ơn & gt;
& lt; / data & gt;
& lt; / data_service & gt;
& lt; data xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" & amp; gt; & gt;
& lt; InBound xsi: nil = ”true” & gt; & lt; / InBound & gt;
& lt; S_id & gt; 5220004 & lt; / S_id & gt;
& lt; message & gt; Client Frame & lt; / message & gt;
& lt; Lời cảm ơn & gt; NSent & lt; / Lời cảm ơn & gt;
& lt; / data & gt;
XSL:
& lt;? xml version = "1.0"? & gt;
& lt; xsl: stylesheet xmlns: xsl = "http://www.w3.org/1999/XSL/Transform"
xmlns = "http://www.edu.com"
xmlns: xsd = "http://www.w3.org/2000/10/XMLSchema"
phiên bản = "1.0" & gt;
& lt; xsl: output encoding = "UTF-8" indent = "yes" method = "xml" / & gt;
& lt; xsl: template match = "/" & gt;
& lt; xsl: element name = "File" & gt;
& lt; xsl: for-each select = "/ data_service / data" & gt;
& lt; xsl: if test = "count (.) & gt; 0" & gt;
& lt; xsl: tên phần tử = "data_service" & gt;
& lt; xsl: if test = "not (InBound / @ xsi: nil = true ())" & gt;
& lt; xsl: element name = "InBound" & gt;
& lt; xsl: value-of select = "InBound" / & gt;
& lt; / xsl: phần tử & gt;
& lt; / xsl: nếu & gt;
& lt; / xsl: phần tử & gt;
& lt; / xsl: phần tử & gt;
& lt; / xsl: mẫu & gt;
& lt; / xsl: bảng định kiểu & gt;
Giải thích:
- Đoạn mã trên xuất ra một câu lệnh NIL sau khi đánh giá.
Ví dụ # 5
Thêm văn bản vào phần tử thoát trên if-Pattern.
Mã:
XML:
& lt;? xml version = '1.0'? & gt;
& lt;? xml-stylesheet type = "text / xsl" href = "baaa.xsl"? & gt;
& lt; giao hàng & gt;
& lt; product domestic = "yes" & gt; Franch Express & lt; / product & gt;
& lt; sản phẩm & gt; Điện tử & lt; / product & gt;
& lt; product internal = "yes" & gt; BigBaskets tạp hóa & lt; / product & gt;
& lt; product & gt; Libia, Ltd & lt; / product & gt;
& lt; product domestic = "yes" & gt; Peter England, Inc. & lt; / product & gt;
& lt; / delivery & gt;
Phân mảnh XSL:
& lt;? xml version = '1.0'? & gt;
& lt; xsl: stylesheet version = "1.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" & gt;
& lt; xsl: template match = "/" & gt;
& lt; html & gt; & lt; body & gt;
& lt; xsl: apply-Template / & gt;
& lt; / body & gt; & lt; / html & gt;
& lt; / xsl: mẫu & gt;
& lt; xsl: template match = "product" & gt;
& lt; p / & gt;
& lt; xsl: if test = "@ nội địa" & gt; thông quan nội địa & lt; / xsl: if & gt;
& lt; xsl: apply-Template / & gt;
& lt; / xsl: mẫu & gt;
& lt; / xsl: bảng định kiểu & gt;
Giải thích:
- Cùng với cấu trúc kiểm tra if, văn bản được thêm vào trong điều kiện và kết quả được đưa ra.
Đầu ra:
Ví dụ # 6
Điều kiện kiểm tra màu sắc.
Mã:
XML:
& lt;? xml version = '1.0'? & gt;
& lt;? xml-stylesheet type = "text / xsl" href = "ifcolor.xsl"? & gt;
& lt; educationba_web & gt;
& lt; Khóa học & gt; Khai thác dữ liệu & lt; / Khóa học & gt;
& lt; Khóa học & gt; Nhà phân tích dữ liệu & lt; / Khóa học & gt;
& lt; Khóa học & gt; Lập trình Python & lt; / Khóa học & gt;
& lt; Khóa học & gt; J2EE & lt; / Khóa học & gt;
& lt; Khóa học & gt; R Lập trình & lt; / Khóa học & gt;
& lt; Khóa học & gt; REST & lt; / Khóa học & gt;
& lt; Khóa học & gt; AWS & lt; / Khóa học & gt;
& lt; / educationba_web & gt;
XSLT:
& lt;? xml version = '1.0'? & gt;
& lt; xsl: stylesheet version = "2.0"
xmlns: xsl = "http://www.w3.org/1999/XSL/Transform" & gt;
& lt; xsl: template match = "/" & gt;
& lt; html & gt;
& lt; body & gt;
& lt; table border = "2" cellpadding = "1.8" cellspacing = "0" width = "60%" & gt;
& lt; xsl: apply-Template / & gt;
& lt; / table & gt;
& lt; / body & gt;
& lt; / html & gt;
& lt; / xsl: mẫu & gt;
& lt; xsl: template match = "Các khóa học" & gt;
& lt; tr & gt;
& lt; xsl: if test = "position () mod 2 = 0" & gt;
& lt; xsl: tên thuộc tính = "bgcolor" & gt; Màu đỏ & lt; / xsl: thuộc tính & gt;
& lt; / xsl: nếu & gt;
& lt; xsl: apply-Template / & gt;
& lt; / tr & gt;
& lt; / xsl: mẫu & gt;
& lt; / xsl: bảng định kiểu & gt;
Giải thích:
- Các mẫu ở trên kiểm tra câu lệnh if với vị trí và định dạng đầu ra theo định dạng bảng.
Đầu ra:
Kết luận
Mặc dù câu lệnh if được coi là kém thanh lịch, nhưng nó rất có lợi trong việc kiểm tra một điều kiện duy nhất. Do đó, trong bài viết này, chúng ta đã thấy logic if-then hoạt động như thế nào với việc triển khai cụ thể. Nếu các điều kiện thử nghiệm không đúng, thì điều gì sẽ xảy ra sau đó, các lập trình viên chuyển sang cấu trúc if-else.
Các bài báo được đề xuất
Đây là hướng dẫn về XSLT nếu. Ở đây chúng ta thảo luận về phần giới thiệu, cách hoạt động của câu lệnh if XSLT? và ví dụ để hiểu rõ hơn. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –
0
Chia sẻ
Chia sẻ
Xem thêm những thông tin liên quan đến chủ đề xslt hoặc ví dụ điều kiện
XSLT XPath Tutorial
- Tác giả: arbitrarytechnology
- Ngày đăng: 2021-01-28
- Đánh giá: 4 ⭐ ( 7058 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Tutorial on very basic XSLT and XPath usage. The focus on this is a from-scratch program, with particular emphasis on stand-alone programs processed with xsltproc. We describe XPath conceptually, with plenty of examples. Then the focus shifts to XSLT by taking a toy example and building its entire source code base for converting an XML data file into a CSV equivalent.
The focus is not to develop sharable code (the toy example is not a general purpuse CSV builder), but to break down the coding style of XSLT by mapping the pseudocode of the problem to specific XSLT constructs.
Biến đổi XML với XSLT
- Tác giả: www.voer.edu.vn
- Đánh giá: 3 ⭐ ( 3948 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Một loại tài liệu XML đặc biệt bao gồm các thẻ xử lý cho phép biến đổi một tài liệu XML thành một tài liệu văn bản bất kỳ (giáo trình – tài liệu – học liệu từ VOER)
Câu điều kiện loại 1 (Conditional sentence type 1) và bài tập vận dụng
- Tác giả: hocieltsdanang.edu.vn
- Đánh giá: 3 ⭐ ( 9664 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Trong bài viết hôm nay, UEC chia sẻ về định nghĩa, công thức, cách dùng, bài tập về câu điều kiện loại 1 và Đảo ngữ câu điều kiện loại 1 nhé!
Kieu Trong Khanh: XSL trong ứng dụng thực tiễn
- Tác giả: www.kieutrongkhanh.net
- Đánh giá: 5 ⭐ ( 2638 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Xslt trong xml (Bài 6)
- Tác giả: giasutinhoc.vn
- Đánh giá: 4 ⭐ ( 2695 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
XSL và XSLT
- Tác giả: code5s.com
- Đánh giá: 3 ⭐ ( 1358 lượt đánh giá )
- Khớp với kết quả tìm kiếm:
Hàm IF lồng nhiều điều kiện trong Excel dễ hiểu nhất
- Tác giả: www.dienmayxanh.com
- Đánh giá: 3 ⭐ ( 3954 lượt đánh giá )
- Khớp với kết quả tìm kiếm: Để có thể giải nhiều vấn đề phức tạp trong Excel, hàm IF lồng nhiều điều kiện trong Excel. Cùng Điện máy XANH chia sẻ cách sử dụng hàm IF nhiều điều kiện dễ hiểu nhất nhé
Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình