1. Trang chủ
  2. » Luận Văn - Báo Cáo

TIỂU LUẬN MÔN CƠ SƠ DỮ LIỆU NGỨng dụng Tổng hợp tin từ các tờ báo điện tử

30 583 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 30
Dung lượng 747 KB

Nội dung

Hình 2 – 1: Dạng cây của tài liệu XML trong XpathXpath sử dụng location path để đưa ra các nút hay là tập hợp các nút node-sets.. Mô hình dữ liệu trong Xpath Khái niệm chung Mô hình Xpat

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

PHÂN TÍCH DỮ LIỆU XML

VÀ ỨNG DỤNG

Nhóm 21: Lê Cao Vinh

Trần Thanh Phong Giảng viên: TS.Nguyễn Hà Nam

HÀ NỘI - 2012

Trang 2

MỤC LỤC

DANH MỤC HÌNH VẼ ii

DANH MỤC BẢNG BIỂU ii

I XML 1

1 Khái niệm 1

2 Ý nghĩa 2

3 Ứng dụng thực tiễn 3

II XPath 7

1 Giới thiệu 7

2 Mô hình dữ liệu trong Xpath 9

3 Location Steps và Paths 14

4 Biểu thức điều kiện 16

5 Mối liên hệ trong Xpath 17

6 Hàm và toán tử trong Xpath 17

III ỨNG DỤNG PHÂN TÍCH XML 21

1 Bài toán 21

2 Mô hình ứng dụng 22

3 Kết quả 25

4 Hướng phát triển 25

IV KẾT LUẬN 26

V TÀI LIỆU THAM KHẢO 27

Trang 3

I DANH MỤC HÌNH VẼ

Hình 1 – 1: Tài liệu MathML hiển thị trên trình duyệt 5

Hình 1 – 2: Tài liệu XHTML hiển thị trên trình duyệt 6

Hình 2 – 1: Dạng cây của tài liệu XML trong Xpath 8

Hình 2 – 2: Truy cập nút <planets> 11

Hình 2 – 3: Toán tử kết hợp trong Xpath 20

Hình 3 – 1: Mô hình ứng dụng 22

Hình 3 – 2: Lược đồ cơ sở dữ liệu 24

Hình 3 – 3: Trang tổng hợp tin demo 25

DANH MỤC BẢNG BIỂU Bảng 2.1: Giá trị của nút 13

Bảng 2.2: Quan hệ trong Xpath 17

Bảng 2.3: Toán tử logic trong Xpath 17

Bảng 2.4: Các hàm Boolean trong Xpath 18

Bảng 2.5: Các hàm xử lý số trong Xpath 18

Bảng 2.6: Các hàm xử lý xâu ký tự trong Xpath 19

Trang 4

II XML

1 Khái niệm

XML, viết tắt của cụm từ tiếng Anh “eXtensible Markup Language” (ngônngữ đánh dấu có thể mở rộng), là ngôn ngữ được định nghĩa bởi tổ chức mạng toàncầu (World Wide Web Comsortium – W3C) Đây là một tổ chức quốc tế định ra cácchuẩn của Web và Internet XML là một cú pháp thông dụng cho việc biểu thị cấutrúc trong dữ liệu Dữ liệu có cấu trúc tham chiếu đến dữ liệu được gán nhãn chonội dung, ý nghĩa, hoặc công dụng Ta hãy quan sát một tài liệu XML cụ thể nhưsau:

Tài liệu trên lữu trữ thông tin về các quyển sách của một cửa hàng sách.Thông tin về sách được lưu trữ gồm có: tựa đề, tác giả, năm xuất bản và giá bán Ta

có thể thấy rằng, XML dùng các cặp thẻ (tags) để mô tả cấu trúc và ý nghĩa cácthành phần dữ liệu XML thì cho phép ta tự do đặt tên các thẻ và sử dụng khi cần

Ta có thể đặt không giới hạn các thẻ và sắp xếp chúng tùy theo mục đích Điều này

<?xml version=”1.0”>

<bookstore>

<book >

<title>Góc sân và khoảng trời</title>

<author>Trần Đăng Khoa</author>

Trang 5

2 Ý nghĩa

XML trở nên phổ biến có rất nhiều nguyên do và chúng ta sẽ xem xét các lợithế mà XML mang lại

Dễ dàng trao đổi dữ liệu.

Hiện nay, ta có thể thấy rằng có rất nhiều định dạng file Ví dụ như file *.doc(Word), *.xls (Excel), *.mdb (access), *.txt (Text file), … Việc chuyển đổi dữ liệugiữa chúng là rất khó khăn cho dù đã có không ít trình ứng dụng hỗ trợ Khi bạnviết chương trình in báo cáo chẳng hạn, bạn phải dự trù chuyển đổi và kết xuất báocáo ra những định dạng này Một công việc không phải đơn giản chưa kể cùng mộtchủng loại file có thể có nhiều phiên bản định dạng khác nhau Nếu dữ liệu cảu filechỉ được lưu theo dạng text thì mọi việc trở nên đơn giản Lý do là file text có thểđọc được bởi hầu hết như tất cả các trình ứng dụng Mặc dù vậy, file text lại khó cóthể bố trí dữ liệu theo cấu trúc XML đã giải quyết được vấn đề này

Trong XML, dữ liệu và định dạng được lưu ở dạng text và bạn có thể cấuhình cũng như thay đổi chúng bằng các trình soạn thảo thông thường, đơn giản nhất

là notepad trong Windows Ta cũng dễ dàng hiện thị cấu trúc dữ liệu bằng cách sắpxếp các thẻ XML

Một lợi thế của XML trong việc lưu trữ dữ liệu là XML đã được chuẩn hóa

và mọi người đều có thể hiểu và sử dụng nó

Như vây, XML cung cấp cách lưu trữ và trao đổi dữ liệu rất hiệu quả

Tùy biến ngôn ngữ định dạng

Một trong những khả năng mạnh nhất của XML là ta có thể tạo ra các ngônngữ định dạng tùy biến dựa trên XML Khi bạn và một tập thể nhóm thỏa thuậnbằng một ngôn ngữ định dạng nào đó (theo một tập thẻ quy ước), bạn có thể tùybiến trình duyệt hoặc ứng dụng để nó xử lý theo ngôn ngữ định dạng của bạn Đã cóhàng trăm ngôn ngữ định dạng chuyên dụng dựa trên XML đã ra đời Ta có thể kể

ra vài ngôn ngữ như:

- MathML (Math Markup Language) – ngôn ngữ định dạng toán học

- XHTML (eXtensible HyperText Markup Language)

- …

Trang 6

Bạn không những có thể tạo ra một tập ngôn ngữ con dựa vào XML mà còn

có thể mở rộng chúng Nếu một người hay một nhóm nào đó đã tạo ra ngôn ngữđịnh dạng con của XML, bạn sử dụng và cảm thấy thiếu một số thẻ Bạn hoàn toàn

có quyền thêm vào các thẻ khác, mà theo đó sẽ giúp bạn thực hiện diễn đạt cũngnhư lưu trữ dễ dàng hơn

Dữ liệu tự mô tả.

Dữ liệu trong tài liệu XML tự mô tả nội dung và ý nghĩa của nó Chỉ dựa vàocác tên thẻ được đặt cho các thẻ XML, ta có thể hình dung ra nội dung và các dữliệu muốn thể hiện Quay trở lại với tài liệu XML đã được đưa ra ở hình 1 – 1 Đó làtài liệu lữu trữ thông tin về các quyển sách của một cửa hàng sách Dựa vào cặp thẻ

<title> ta có thể biết được tiêu đề sách, dựa vào cặp thẻ <author> ta có thể biết đượctác giả, tương tự như vậy, ta có thể biết được các thông tin khác của sách

Dữ liệu có cấu trúc và tích hợp

Một điểm mạnh nữa của XML là ta có thể tổ chức dữ liệu theo cấu trúc.XML cho phép các phần tử thẻ tích hợp với nhau tạo nên một cấu trúc dữ liệu phâncấp hoàn chỉnh Điều này cực kỳ quan trọng khi bạn cần đến khả năng định nghĩa

dữ liệu có cấu trúc Ngoài ra, việc xây dựng các phương pháp phân tích tài liệuXML dựa trên cấu trúc phân cấp dễ dàng hơn

3 Ứng dụng thực tiễn.

Với sức mạnh của mình, XML đã được sử dụng trong rất nhiều ứng dụng

MathML – Ngôn ngữ định dạng toán học

MathML (Math Markup Language) ra đời nhằm đưa đến khả năng hiển thị

và định dạng được các biểu thức toán học trong các tài liệu Web Dưới đây là ví dụ

về nội dung tài liệu MathML

Trang 7

Mở file trên bằng trình duyệt FireFox, ta nhận được kết quả hiển thị như sau:

Trang 8

Hình 1 – 1: Tài liệu MathML hiển thị trên trình duyệt.

XHTML

XHTML là ứng dụng XML có thể nói là lớn nhất cho đến hiện nay XHML

mở rộng và định nghĩa lại HTML một cách có trật tự và cấu trúc hơn Nhìn chung,XHTML sử dụng lại các thẻ định dạng của HTML, vì vậy mà mọi trình duyệt đềuhiểu được Dưới đây là một tài liệu XHTML:

Kết quả hiển thị trên trình duyệt:

Trang 9

Hình 1 – 2: Tài liệu XHTML hiển thị trên trình duyệt.

SOAP

SOAP là viết tắt của “Simple Object Access Protocol” ( Giao thức truy nhậpđối tượng đơn giản) Theo chuẩn W3C ( World Wide Web Consortium), SOAP làmột giao thức đơn giản để trao đổi thông tin trong môi trường phân cấp, phân phối

Đó là giao thức XML cơ bản, cho phép các thành phần và các ứng dụng liên kết vớinhau sử dụng HTTP SOAP còn có thể kết nối các ứng dụng chạy trên các hệ điềuhành khác nhau, với công nghệ và ngôn ngữ lập trình khác nhau Từ khi SOAP trởthành một giao thức, nó cho phép một phần nào đó của luật gọi đối tượng điềukhiển Thông thường SOAP được sử dụng rộng rãi cùng với giao thức HTTP để kếtnối, nhưng nó vẫn có thể được sử dụng cùng với giao thức khác, ví dụ như SMTP

WML – Wireless Markup Language

WML là ngôn ngữ đánh dấu kế thừa HTML, hỗ trợ xây dựng các trang Webphục vụ cho kết nối từ điện thoại di động Đặc điểm của WML là tạo nên các trangweb nhỏ gọn, hiển thị trên màn hình điện thoại di động

Trang 10

III XPath

1 Giới thiệu

Xpath là một ngôn ngữ được sử dụng để tìm kiếm thông tin trên tài liệuXML Ta coi một tài liệu XML như được đại diện bằng một tree (cây) có nhiều nút(nodes) Mỗi phần tử (Element) hay thuộc tính (Attribute) là một nút (node) Đểminh họa, ta sẽ quan sát tài liệu đặt hàng (order) XML sau:

Ta có thể biểu diễn tài liệu trên bằng 1 cây như sau:

Trang 11

Hình 2 – 1: Dạng cây của tài liệu XML trong XpathXpath sử dụng location path để đưa ra các nút hay là tập hợp các nút (node-sets) Các biểu thức đường dẫn này giống như là các đường dẫn được sử dụng trong

hệ thống tệp máy tính Bạn có thể dùng biểu thức này để chỉ định đường dẫn đếnnode nào đó hay trích ra (trả về) một hay nhiều nodes thỏa đúng điều kiện yêu cầu.Biểu thức có thể là tuyệt đối, tức là lấy node gốc làm chuẩn hay tương đối, tức làkhởi đầu từ node vừa mới được chọn

XPath đóng một vai trò quan trọng trong công tác trao đổi dữ liệu giữa cácmáy tính hay giữa các chương trình ứng dụng vì nó cho phép ta lựa chọn hay sànglọc ra những tin tức nào mình muốn để trao đổi hay hiển thị

Nếu khi làm việc với cơ sở dữ liệu ta dùng SQL statement Select fromTable WHERE để trích ra một số bản ghi từ một bảng, thì khi làm việc với

Order

Document (Root)Element

OrderNo=”0467”

OrderDate (01-01-2008) Customer (vinhlc) Item

Product (CPU)

ProductID=”1” Price=”200” Quantity (1)

Item

Product (RAM)

ProductID=”2” Price=”48” Quantity (2)

Chú thích:

Element

Attribute

ROOT NODE

Trang 12

XML, một bảng dữ liệu nho nhỏ, XPath cho ta những biểu thức về điều kiện giốnggiống như mệnh đề WHERE trong SQL.

XPath là một chuẩn để xử lý XML, cũng giống như SQL là một chuẩn đểlàm việc với cơ sở dữ liệu Tiên phong trong việc triển khai các chương trình ápdụng XPath là công tác của các công ty phần mềm lớn như Microsoft, Oracle, Sun,IBM, v.v Sở dĩ ta cần có một chuẩn XPath là vì nó được áp dụng trong nhiều hoàncảnh, nên cần phải có một lý thuyết rõ ràng, chính xác

2 Mô hình dữ liệu trong Xpath

Khái niệm chung

Mô hình Xpath của một tài liệu XML như là một cây gồm các nút Có nhiềuloại nút khác nhau trong Xpath, như là nút phần tử (element nodes), nút thuộc tính(attribute nodes), và nút dữ liệu văn bản (text nodes)

Các kiểu nút trong Xpath

Có 7 kiểu nút trong Xpath là:

 Root nodes – nút gốc

 Element nodes – nút phần tử

 Attribute nodes – nút thuộc tính

 Processing instruction nodes – nút chỉ lệnh

 Comment nodes – nút chú thích

 Text nodes – nút dữ liệu văn bản

 Namespace nodes – nút không gian tên

Để quan sát các nút này, chúng ta xem xét tài liệu planets.xml sau đây:

Trang 13

Root Node – nút gốc

Nút gốc là gốc của cây của tài liệu trong Xpath Nó không phải là phần tử

<planets> trong tài liệu planets.xml ở trên Phần tử <planets> là phần tử tài liệu

(document element) trong tài liệu XML Chúng ta thường nhầm lẫn hai khái niệmnày

Nút gốc (root node) là một nút logic mà chứa toàn bộ các nút khác trong cây.Như vậy, phần tử <planets> ở trên là một nút con của nút gốc Chúng ta có thể truycập vào nút gốc bằng cách sử dụng ký tự slash (/) Còn khi sử dụng một biểu thứcnhư là /planets, nghĩa là chúng ta sẽ tìm nút con <planets> từ nút gốc Chúng ta cóthể thử nghiệm điều này bằng cách sử dụng công cụ Xpath Explorer

<density units="(Earth = 1)">.983</density>

<distance units="million miles">43.4</distance>

<density units="(Earth = 1)">.943</density>

<distance units="million miles">66.8</distance>

<density units="(Earth = 1)">1</density>

<distance units="million miles">128.4</distance>

<! At perihelion >

</planet>

</planets>

Trang 14

Hình 2 – 2: Truy cập nút <planets>

Element Node – nút phần tử

Đây là loại nút tương ứng với các phần tử (elements) của một tài liệu XML,như là các nút <planets>, <planet> Cũng như các phần tử của tài liệu XML, mỗinút phần tử trong Xpath có thể chứa các nút phần tử khác hay các nút khác: nút chúthích (comment nodes), nút dữ liệu văn bản (text nodes)

AttributeNode – nút thuộc tính

Đây là loại nút tương ứng với các thuộc tính của phần tử trong tài liệu XML

Chẳng hạn, tài liệu planets.xml ở trên có một thuộc tính có tên là units với giá trị là

“days”

Trong Xpath, mỗi phần tử là cha của các nút thuộc tính của nó Điều này làkhác với mô hình đối tượng dữ liệu (DOM – Document Object Model), không coi

<day units="days">58.65</day>

Trang 15

Processing Instruction Nodes – nút chỉ lệnh xử lý

Mỗi một chỉ lệnh xử lý trong tài liệu XML là một nút trong Xpath Ví dụ, ta

Text nodes – nút dữ liệu văn bản

Dữ liệu dạng văn bản được lưu trữ trong các phần tử là nút dữ liệu văn bản.Chú ý rằng, nếu một phần tử chứa nhiều phần tử khác hoặc chỉ lệnh, chú thích thì cóthể tách văn bản thành nhiều nút dữ liệu văn bản Ví dụ, ta có phần tử sau:

Phần tử trên chứa 2 nút dữ liệu văn bản: “Mars” và “The Red Planet”

Namespace nodes – nút không gian tên

Namespace nodes có chút khác biết với các loại nút khác Chúng không đượchiện thị trực tiếp trong tài liệu XML:

Trong trường hợp này, tiền tố xsl liên kết với địa chỉ

"http://www.w3.org/1999/XSL/Transform", và phần tử nào có tên bắt đầu bằng tiền

<?xml-stylesheet type="text/xsl" href="planets.xsl"?>

Trang 16

mà tên của chúng không chứa tiền tố nào, thì phần tử đó có không gian tên mặcđịnh http://www.w3.org/1999/xhtml.

<map:Stars> có QNames là “Stars”

 Expanded name (tên mở rộng): nếu một nút vừa có local name, vừa liên kếtvới một không gian tên, thì expanded name của nó được tạo thành giữa địachỉ của không gian tên và local name Theo James Clark, expanded nameđược tạo bằng cách dùng địa chỉ không gian tên và nối với local name bằngdấu “+” Ví dụ, http://www.starpowder.com+planets[3]

Giá trị của nút

Mỗi một nút trong Xpath đều có giá trị Ví dụ, giá trị của một nút chú thích(comment node) là nội dung của chính nó Sau đây là cách lấy giá trị tương ứng vớimỗi loại nút

Bảng 2.1: Giá trị của nút

Root nodes Bao gồm giá trị của tất cả các nút dữ liệu văn bản

Element nodes Bao gồm giá trị của các text nodes chứa trong nó, kể cả text

nodes có trong con cháu của nó

Attribute nodes Giá trị của thuộc tính

Processing <?xml-stylesheet type="text/xsl" href="file.xsl"?> có thuộc

Trang 17

3 Location Steps và Paths

Như đã dưới thiệu, Xpath sử dụng location path để đưa ra các nút hay là tậphợp các nút (node-sets) Dạng thể hiện đường dẫn này giống như là các đường dẫnđược sử dụng trong hệ thống tệp máy tính Bạn có thể dùng biểu thức này để chỉđịnh đường dẫn đến node nào đó hay trích ra (trả về) một hay nhiều nodes thỏađúng điều kiện yêu cầu Đường dẫn có thể là tuyệt đối, tức là lấy node gốc làmchuẩn hay tương đối, tức là khởi đầu từ node vừa mới được chọn

Một location path có thể chứa một hoặc nhiều location steps Các locationsteps trong location path được ngăn cách bởi ký tự slash (/) hoặc double slash (//)

Đường dẫn tương đối

Chúng ta hãy tìm vài đường dẫn trong cây của tài liệu XML về đặt hàng nóitrên Muốn chọn cái node Element Order bằng cú pháp đầy đủ, ta sẽ dùng biểu thứcXPath sau đây:

Tương ứng với cú pháp viết tắt là:

Đi ra nhánh của cây, ta sẽ tìm được node Customer bằng cách dùng biểu thứcsau:

Tương ứng với cú pháp viết tắt:

Nếu bạn muốn lấy ra một node thuộc tính, bạn phải nói rõ điều này bằng

cách dùng từ khóa attribute trong cách viết nguyên hay dùng ký tự @ trong cú pháp

tắt Do đó để lấy thuộc tính OrderNo của Element Order, ta sẽ dùng biểu thức sau:

Trang 18

Để trích ra tất cả các nodes con cháu, tức là các nodes nhánh xa hơn, ta dùng

từ khóa descendant trong cú pháp đầy đủ hay dấu double slash (//) trong cú pháp tắt.

Thí dụ, để lấy ra các nodes Product trong tài liệu, bạn có thể dùng biểu thức sau:

Cú pháp viết tắt:

Bạn cũng có thể sử dụng các ký tự đại diện (wildcard) để đưa ra các nút Thí

dụ, để đưa ra tất cả các nút con của nút gốc Order, ta dùng biểu thức:

Ngoài ra, bạn cũng có thể sử dụng ký tự đại diện @* để đưa ra tất cả các nútthuộc tính, hay sử dụng node() để đưa ra tất cả các nút con

Đường dẫn tương đối

Trong đường dẫn tuyệt đối, chúng ta luôn bắt đầu từ nút gốc rồi đi xuống cácnút con Với đường dẫn tương đối, chúng ta sẽ chọn một nút làm mốc rồi duyệt cây

để đưa ra thông tin Thí dụ như, nếu nút Item thứ nhất trong Order là nút mốc, thìđường dẫn tương đối để trích ra Element con Quantity là:

Ngày đăng: 08/07/2015, 16:06

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Vovisofts, Kỹ thuật XML, http://www.vovisoft.com/XML/default.htmTiếng Anh Link
[3] James Clark, XML: namespace in 20 lines, http://xml.coverpages.org/ clarkNS- 980804.html Link
[6] Introduction to XML DTD, http://www.xmlfiles.com/dtd/default.asp[7] Sas Jacobs, Beginning XML with DOM and AJAX, 2006, Chaper 1 Link
[1] Nguyễn Phương Lan, Hoàng Đức Hải, XML nền tảng và ứng dụng, NXB Giáo Dục, 2001 Khác
[4] Steven Holzner, Xpath: Navigating XML with Xpath 1.0 and 2.0 Kick start, Sams, 2003, Chaper 1 - 4 Khác
[5] David Hunter, Jeff Rafter, Joe Fawcett, Eric van der Vlist, Danny Ayers, Jon Duckett, Andrew Watt, and Linda McKinnon, Beginning XML, 4th Edition, Wiley Publishing, Inc, 2007 Khác
[8] Joe Marini, The Document Object Model: Processing Structured Document, McGraw-Hill, 2002, Part 1 Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w