Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 29 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
29
Dung lượng
747 KB
Nội dung
ĐẠ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 MỤC LỤC I. DANH MỤC HÌNH VẼ ii II. DANH MỤC BẢNG BIỂU ii III. XML 1 a. Khái niệm 1 a. Khái niệm 1 b. Ý nghĩa 2 b. Ý nghĩa 2 c. Ứng dụng thực tiễn 3 c. Ứng dụng thực tiễn 3 IV. XPath 7 1. Giới thiệu 7 1. Giới thiệu 7 b. Mô hình dữ liệu trong Xpath 9 b. Mô hình dữ liệu trong Xpath 9 c. Location Steps và Paths 14 c. Location Steps và Paths 14 d. Biểu thức điều kiện 16 d. Biểu thức điều kiện 16 e. Mối liên hệ trong Xpath 17 e. Mối liên hệ trong Xpath 17 f. Hàm và toán tử trong Xpath 17 f. Hàm và toán tử trong Xpath 17 V. ỨNG DỤNG PHÂN TÍCH XML 20 1. Bài toán 20 1. Bài toán 20 b. Mô hình ứng dụng 21 b. Mô hình ứng dụng 21 c. Kết quả 24 c. Kết quả 24 d. Hướng phát triển 24 d. Hướng phát triển 24 VI. KẾT LUẬN 25 VII. TÀI LIỆU THAM KHẢO 26 i 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 19 Hình 3 – 1: Mô hình ứng dụng 21 Hình 3 – 2: Lược đồ cơ sở dữ liệu 23 Hình 3 – 3: Trang tổng hợp tin demo 24 II. 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 18 ii III. XML a. Khái niệm XML, viết tắt của cụm từ tiếng Anh “eXtensible Markup Language” (ngôn ngữ đánh dấu có thể mở rộng), là ngôn ngữ được định nghĩa bởi tổ chức mạng toàn cầu (World Wide Web Comsortium – W3C). Đây là một tổ chức quốc tế định ra các chuẩn của Web và Internet. XML là một cú pháp thông dụng cho việc biểu thị cấu trú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 cho nộ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ác thà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 khiến XML trở nên rất linh động, dễ dàng mở rộng và có thể áp dụng vào mọi ứng dụng. <?xml version=”1.0”> <bookstore> <book > <title>Góc sân và khoảng trời</title> <author>Trần Đăng Khoa</author> <year>2005</year> <price>20,000</price> </book> <book > <title>Việt Bắc</title> <author>Tố Hữu</author> <year>2003</year> <price>37,000</price> </book> </bookstore> 1 b. Ý 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ợi thế 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ệu giữa chúng là rất khó khăn cho dù đã có không ít trình ứng dụng hỗ trợ. Khi bạn viế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áo cá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ột chủ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 file chỉ đượ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ấu hì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ắp xế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ôn ngữ đị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ận bằng một ngôn ngữ định dạng nào đó (theo một tập thẻ quy ước), bạn có thể tùy biế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) - … Khả năng mở rộng. 2 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ũng như 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ào cá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 được tá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ân cấ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ệu XML dựa trên cấu trúc phân cấp dễ dàng hơn. c. Ứ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. 3 Mở file trên bằng trình duyệt FireFox, ta nhận được kết quả hiển thị như sau: <?xml version="1.0"?> <html xmlns="http://www.w3.org/1999/xhtml"> <p> <mml:math xmlns:mml="http://www.w3.org/1998/Math/MathML"> <mml:mrow> <mml:msup> <mml:mfenced open="[" close="]"> <mml:mrow> <mml:mi>a</mml:mi> <mml:mo>+</mml:mo> <mml:mi>b</mml:mi> </mml:mrow> </mml:mfenced> <mml:mn>260</mml:mn> </mml:msup> <mml:mo>+</mml:mo> <mml:msub> <mml:mfenced open="{" close="}"> <mml:mrow> <mml:mi>a</mml:mi> <mml:mo>+</mml:mo> <mml:mi>b</mml:mi> </mml:mrow> </mml:mfenced> <mml:mi>i</mml:mi> </mml:msub> </mml:mrow> </mml:math> </p> <p> <math xmlns="http://www.w3.org/1998/Math/MathML"> <msup> <msqrt> <mrow> <mi>a</mi> <mo>+</mo> <mi>b</mi> </mrow> </msqrt> <mn>27</mn> </msup> </math> </p> </html> 4 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 đều hiể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: <?xml version="1.0"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Welcome to XHTML</title> </head> <body> <h1>Have a nice day! </h1> </body> </html> 5 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ới nhau 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ều hà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ều khiển. Thông thường SOAP được sử dụng rộng rãi cùng với giao thức HTTP để kết nố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 Web phụ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 trang web nhỏ gọn, hiển thị trên màn hình điện thoại di động. 6 IV. 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ệu XML. 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: <?xml version=”1.0” ?> <Order OrderNo=”0467”> <OrderDate> 01-01-2008 </OrderDate> <Customer> vinhlc </Customer> <Item> <Product ProductID=”1” Price=”200”> CPU </Product> <Quantity> 1 </Quantity> </Item> <Item> <Product ProductID=”21” UnitPrice=”48”> RAM </Product> <Quantity> 2 </Quantity> </Item> </Order> 7 [...]... thường xuyên của nhiều tờ báo điện tử, tôi mong muốn có một trang web tổng hợp tin tức về các lĩnh vực yêu thích 20 b Mô hình ứng dụng Nguồn dữ liệu SERVER vnn HTML Đọc nguồn dữ liệu 24h dantri XML vneconom y Phân tích dữ liệu Dữ liệu CLIENT CSDL Dữ liệu Truy vấn Browser ASP.NET Dữ liệu Hình 3 – 1: Mô hình ứng dụng Nguồn dữ liệu: Là các trang web báo điện tử chứa các thông tin cần tổng hợp như là vietnamnet.vn,... Xpath Các bước xử lý có thể được mô tả như sau: 21 1 Dùng Xpath để tìm tới vùng chứa nội dung cần lấy 2 Tách từng bản tin ra 3 Với mỗi bản tin, ta lấy các thông tin: Ảnh minh họa, Tiêu đề tin, Link tới bài viết, Nội dung tóm tắt Sau bước này, chúng ta sẽ lấy được dữ liệu cần thiết Dữ liệu này sẽ được lưu vào một cơ sở dữ liệu Cơ sở dữ liệu: Dữ liệu cần thiết sẽ được lưu vào một cơ sở dữ liệu Cơ sở dữ liệu. .. thị từ trang ASP.NET 23 c Kết quả Ứng dụng đã tổng hợp tin về lĩnh vực kinh tế từ hai nguồn dữ liệu là hai trang tin điện tử vietnamnet.vn và atpvietnam.com Hình 3 – 3: Trang tổng hợp tin demo d Hướng phát triển Bổ sung nguồn dữ liệu Loại bỏ thông tin trùng lặp 24 VI KẾT LUẬN Với sự phát triển không ngừng của nền công nghệ, nhu cầu đề ra các chuẩn tài liệu nhằm truyền dữ liệu và trao đổi thông tin. .. được xây dựng trên hệ quản trị cơ sở dữ liệu Microsoft SQL 2005 Cơ sở dữ liệu này được thiết kế gồm hai bảng như sau: 22 • Bảng Category: lưu trữ tên các lĩnh vực • Bảng News: lưu trữ thông tin về các bản tin Hình 3 – 2: Lược đồ cơ sở dữ liệu Dữ liệu trong cơ sở dữ liệu này sẽ được hiển thị ra một trang ASP.NET Trang ASP.NET: Trang ASP.NET này sẽ truy vấn vào cơ sở dữ liệu và tương tác với trình duyệt... nhật thông tin nhanh nhất có thể đã dẫn tới một thể loại báo chí mới – báo điện tử Báo điện tử là một giải pháp làm làm báo và đọc báo dựa trên nền tảng công nghệ Internet với khởi điểm ban đầu là các trang tin điện tử - website Do mang đặc tính của các trang tin điện tử là thường xuyên được cập nhật nên thông tin luôn đến với độc giả nhanh hơn và mới hơn Với những ưu điểm trên, báo điển tử đã thực... vneconomy … Các thành phần trên Server Đọc nguồn dữ liệu: Đây là thành phần có chức năng đọc nguồn dữ liệu (chính là các trang báo điện tử) và lấy về tài liệu HTML mô tả trang web đó Do tài liệu cần phân tích phải có dạng XML, nên chúng ta cần chuyển về định dạng XML Phân tích dữ liệu: Đây là thành phần chính của ứng dụng có chức năng phân tích, xử lý tài liệu XML thu được để lấy ra dữ liệu cần thiết... một chuẩn tài liệu thống nhất, có thể hỗ trợ bởi hầu hết các ứng dụng Ngoài ra, XML còn cung cấp phương pháp xử lý thông tin một cách thuận lợi Xpath là phương pháp phân tích tài liệu định dạng XML mạnh mẽ và hiệu quả dựa trên cấu trúc cây Bài viết đã tiếp cận những vấn đề trên và đưa ra áp dụng các phương pháp phân tích tài liệu XML vào ứng dụng tổng hợp tin trên các trang tin điện tử Kết quả chính... number Cắt xâu str từ vị trí offset với độ dài length offset, number length) Các hàm và toán tử xử lý tập hợp Xpath cung cấp toán tử | để kết hợp kết quả trả về của các location paths Ví dụ, sử dụng location path: “//name | //day” tài liệu planets.xml đã trình bày ở (3.2.3.1) sẽ được kết quả là tập hợp các nút có tên là “name” và “day” Hình 2 – 3: Toán tử kết hợp trong Xpath 19 V ỨNG DỤNG PHÂN TÍCH XML... sử dụng một biểu thức như là /planets, nghĩa là chúng ta sẽ tìm nút con 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 10 Hình 2 – 2: Truy cập nút 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 , Cũng như các phần tử của tài liệu XML, mỗi nút phần tử trong... sử dụng các toàn tử logic để trả về kết quả ở dạng đúng/sai Xpath cung cấp các toán tử logic sau: Bảng 2.3: Toán tử logic trong Xpath = So sánh bằng != Khác < So sánh nhỏ hơn Lớn hơn 17 >= Lớn hơn hoặc bằng Chúng ta có thể kết hợp các mệnh đề logic này với nhau bằng cách sử dụng phép toán logic “and” và “or” Ngoài các toán tử, Xpath còn hỗ trợ các hàm Boolean: Bảng 2.4: Các hàm . 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. 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ới nhau sử dụng HTTP. SOAP còn có thể kết nối các ứng dụng chạy trên các. 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ỗi nút phần tử trong