báo cáo bài tập lớn môn xml

13 1.1K 0
báo cáo bài tập lớn môn xml

Đ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

bài tập lớn môn xml nhóm 3. Quá trình lấy dữ liệu tạo ứng dụng đọc báo trên android nội dung bao gồm cách lấy dũe liệu về, phân tích dữ liệu và hiển thị trang báo trên android.Một trong nhữn ưu điểm lớn nhất của nền tảng Android chính là việc nó thúc đẩy ngôn ngữ lập trình Java. Android SDK không hoàn toàn cung cấp sẵn mọi thứ cho Môi trường Thời gian chạy Java (JRE) chuẩn của bạn, nhưng nó lại hỗ trợ một phần rất đáng kể cho nó. Nền tảng Java đã và đang hỗ trợ rất nhiều cách khác nhau để làm việc với XML trong thời gian nhất định, và hầu hết các API có liên quan đến XML của Java đều được hỗ trợ đầy đủ trên Android. Ví dụ, Simple API của Java cho XML (SAX) và Document Object Model (DOM) hiện đều có sẵn trên Android. Nhiều năm qua, cả hai API này là một phần của công nghệ Java. Sản phẩm Streaming API mới đây cho XML (StAX) hiện chưa có trong Android. Tuy nhiên, Android lại cung cấp một thư viện tương đương về mặt chức năng. Điều cuối cùng là Java XML Binding API cũng không có sẵn trong Android. Chắc chắn có thể thực hiện API này trong Android. Tuy nhiên, nó lại có xu hướng là một API nặng ký, với rất nhiều thể hiện khác nhau thuộc các lớp khác nhau thường cần việc trình bày một tài liệu XML. Do vậy mà nó không lý tưởng lắm cho một môi trường bị ràng buộc chẳng hạn như thiết bị cầm tay mà Android được thiết kế để chạy trên đó. Trong các phần tiếp theo, bạn sẽ lấy một nguồn XML đơn giản có sẵn trên Internet, và xem cách phân tích nguồn đó như thế nào trong phạm vi một ứng dụng Android sử dụng các API khác nhau được nhắc đến ở trên.Trước tiên, hãy xem các phần cần thiết của ứng dụng đơn giản sẽ sử dụng XML từ Internet.

Báo cáo tập lớn Môn XML (Khi tải tài liệu vui lòng liên hệ minhvuong181293@gmail.com sdt: 01672528345 để nhận full demo + power poind + word + biểu đồ … cảm ơn! ) I.Phát biểu toán Bài toán ứng dụng đọc báo thiết bị di động Android Các báo lấy từ link RSS trang báo – cho phép người dùng xem nhanh chóng tin tức nhất, nóng Để chạy ứng dụng này, yêu cầu phải tạo giả lập Android công cụ adt-bundlewindows 1.Giới thiệu hệ điều hành Android Android hệ điều hành điện thoại di động mã nguồn mở, đại, miễn phí Google phát triển dựa tảng Linux Android tảng cho thiết bị di động bao gồm hệ điều hành, midware số ứng dụng chủ đạo Bộ công cụ Android SDK cung cấp công cụ thư viện hàm API cần thiết để phát triển ứng dụng cho tảng Android sử dụng ngôn ngữ lập trình Java Mô hình kiến trúc tảng Android 2.Các thành phần Android a.Activity : Là thành phần ứng dụng Android Activity dùng để hiển thị hình, việc mà người dùng thực ứng dụng Android, tương tác với người sử dụng b.Intent : Là cấu trúc liệu mô tả cách thức, đối tượng thực Activity, cầu nối Activity, giúp ta triệu gọi truyền liệu cần thiết để thực Activity từ Activity khác Ứng dụng Android thường bao gồm nhiều Activity, Activity hoạt động độc lập với thực công việc khác c.Bundle : Ta thường dùng đối tượng Bundle để đóng gói liệu cho việc truyền tải qua Activity khác Bundle có loại phương thức: putXXX bên Bundle gửi key đi, ứng với kiểu liệu put kiểu Ở bên nhận Bundle dùng phương thức getXXX tương ứng để lấy liệu theo key bên gửi 3.Giới thiệu RSS RSS (viết tắt từ Really Simple Syndication Rich Site Summary) tiêu chuẩn định dạng tài liệu dựa XML (eXtensible Markup Language) nhằm giúp người sử dụng dễ dàng cập nhật, tra cứu thông tin cách nhanh chóng thuận tiện cách tóm lược thông tin vào đoạn liệu ngắn gọn, hợp chuẩn Dữ liệu chương trình đọc tin chuyên biệt (gọi News reader) phân tích hiển thị máy tính người sử dụng Trên trình đọc tin này, người sử dụng thấy tin nhất, tiêu đề, tóm tắt đường link để xem toàn tin XML ngôn ngữ đánh dấu nhằm đơn giản hóa việc chia sẻ liệu hệ thống khác nhau, đặc biệt hệ thống kết nối Internet XML cung cấp phương tiện dùng văn để mô tả thông tin áp dụng cấu trúc kiểu cho thông tin II Làm việc với XML Android 1.Bắt đầu Trong viết này, bạn học cách xây dựng ứng dụng Android làm việc với XML từ Internet Các ứng dụng Android viết ngôn ngữ lập trình Java™, mà kinh nghiệm làm việc với công nghệ Java điều cần phải có Để phát triển cho Android, bạn cần đến Android SDK Toàn mã trình trình bày viết làm việc với phiên Android SDK, phiên SDK 1.5_pre sử dụng để phát triển mã trình Bạn phát triển ứng dụng Android với SDK trình biên tập văn đủ, dễ dàng nhiều sử dụng Android Developer Tools (ADT), trình bổ sung Eclipse 2.XML Android Nền tảng Android tảng phát triển di động mã nguồn mở Nó giúp bạn truy cập vào tất khía cạnh thiết bị di động mà chạy đó, từ đồ họa cấp thấp, đến phần cứng thiết bị camera điện thoại Với nhiều thứ sử dụng Android, bạn tự hỏi bạn cần phiền đến XML Đó làm việc với XML thú vị; mà làm việc với thứ mà kích hoạt XML thường dùng định dạng liệu Internet Nếu bạn muốn truy cập liệu từ Internet, khả liệu dạng XML Nếu bạn muốn gửi liệu đến dịch vụ Web, bạn cần gửi liệu XML Nói ngắn gọn ứng dụng Android bạn thúc đẩy Internet, bạn cần phải làm việc với XML Thật may mắn bạn có nhiều lựa chọn có sẵn để làm việc với XML Android 3.Các trình phân tích XML Một nhữn ưu điểm lớn tảng Android việc thúc đẩy ngôn ngữ lập trình Java Android SDK không hoàn toàn cung cấp sẵn thứ cho Môi trường Thời gian chạy Java (JRE) chuẩn bạn, lại hỗ trợ phần đáng kể cho Nền tảng Java hỗ trợ nhiều cách khác để làm việc với XML thời gian định, hầu hết API có liên quan đến XML Java hỗ trợ đầy đủ Android Ví dụ, Simple API Java cho XML (SAX) Document Object Model (DOM) có sẵn Android Nhiều năm qua, hai API phần công nghệ Java Sản phẩm Streaming API cho XML (StAX) chưa có Android Tuy nhiên, Android lại cung cấp thư viện tương đương mặt chức Điều cuối Java XML Binding API sẵn Android Chắc chắn thực API Android Tuy nhiên, lại có xu hướng API nặng ký, với nhiều thể khác thuộc lớp khác thường cần việc trình bày tài liệu XML Do mà không lý tưởng cho môi trường bị ràng buộc chẳng hạn thiết bị cầm tay mà Android thiết kế để chạy Trong phần tiếp theo, bạn lấy nguồn XML đơn giản có sẵn Internet, xem cách phân tích nguồn phạm vi ứng dụng Android sử dụng API khác nhắc đến trên.Trước tiên, xem phần cần thiết ứng dụng đơn giản sử dụng XML từ Internet 4.Trình đọc tin Android Ứng dụng lấy điểm tin RSS từ trang nhà phát triển Android phổ biến Androidster phân tách thành danh sách đối tượng Java đơn giản mà bạn sử dụng để quay lại Android ListView Đây hoạt động đa hình thái cổ điển — tức thực thi khác (các thuật toán phân tích XML khác nhau) cung cấp hoạt động giống Ví dụ cho bạn thấy bạn mô hình hóa điều dễ dàng mã trình Java sử dụng giao diện Ví dụ giao diện trình phân tích điểm tin XML package org.developerworks.android; import java.util.List; public interface FeedParser { List parse(); } Trong Ví dụ 2, lớp Message POJO (Plain Old Java Object) cổ điển miêu tả cấu trúc liệu Ví dụ Message POJO public class Message implements Comparable{ static SimpleDateFormat FORMATTER = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z"); private String title; private URL link; private String description; private Date date; // getters and setters omitted for brevity public void setLink(String link) { try { this.link = new URL(link); } catch (MalformedURLException e) { throw new RuntimeException(e); } } public String getDate() { return FORMATTER.format(this.date); } public void setDate(String date) { // pad the date if necessary while (!date.endsWith("00")){ date += "0"; } try { this.date = FORMATTER.parse(date.trim()); } catch (ParseException e) { throw new RuntimeException(e); } } @Override public String toString() { // omitted for brevity } @Override public int hashCode() { // omitted for brevity } @Override public boolean equals(Object obj) { // omitted for brevity } // sort by date public int compareTo(Message another) { if (another == null) return 1; // sort descending, most recent first return another.date.compareTo(date); } } Message, Ví dụ 2, thường dễ làm Nó ẩn vài trạng thái bên cách cho phép truy cập ngày tháng liên kết chuỗi đơn giản, thể chúng đối tượng xếp cách rõ ràng (một java.util.Date mộtjava.net.URL) Nó Value Object (Đối tượng Giá trị) cổ điển, thực thi equals() hashCode() dựa trạng thái bên Nó thực giao diện Comparable bạn sử dụng để xếp (theo ngày tháng) Thực tế, liệu phân loại từ điểm tin, mà điều không cần thiết Mỗi thực thi trình phân tích cần đưa URL đến điểm tin Androidster sử dụng để mở kết nối HTTP đến trang Androidster Hoạt động phổ biến mô hình hóa cách tự nhiên mã trình Java sử dụng lớp sở trừu tượng Ví dụ Ví dụ Lớp trình phân tích điểm tin public abstract class BaseFeedParser implements FeedParser { // names of the XML tags static final String PUB_DATE = "pubDate"; static final String DESCRIPTION = "description"; static final String LINK = "link"; static final String TITLE = "title"; static final String ITEM = "item"; final URL feedUrl; protected BaseFeedParser(String feedUrl){ try { this.feedUrl = new URL(feedUrl); } catch (MalformedURLException e) { throw new RuntimeException(e); } } protected InputStream getInputStream() { try { return feedUrl.openConnection().getInputStream(); } catch (IOException e) { throw new RuntimeException(e); } } } Lớp sở lưu trữ feedUrl sử dụng để mở java.io.InputStream Nếu có sai sót nào, đơn giản thả mộtRuntimeException, cho ứng dụng dừng hoạt động cách nhanh chóng Lớp sở xác định vài số đơn giản cho tên thẻ Ví dụ trình bày số nội dung mẫu từ điểm tin, qua bạn thấy ý nghĩa thẻ Ví dụ Điểm tin XML mẫu android_news android_news http://www.androidster.com/android_news.php Sun, 19 Apr 2009 19:43:45 +0100 FeedCreator 1.7.2 Samsung S8000 to Run Android, Play DivX, Take Over the World http://www.androidster.com/android_news/samsung-s8000-to-run-androidplay-divx-take-over-the-world More details have emerged on the first Samsung handset to run Android A yet-to-be announced phone called the S8000 is being reported Thu, 16 Apr 2009 07:18:51 +0100 Android Cupcake Update on the Horizon http://www.androidster.com/android_news/android-cupcake-updateon-the-horizon After months of discovery and hearsay, the Android build that we have all been waiting for is about to finally make it out Tue, 14 Apr 2009 04:13:21 +0100 Như bạn thấy từ mẫu Ví dụ 4, ITEM tương đương với thể Message Các nút mục chọn (TITLE, LINK v.v ) tương đương đặc tính thể Message Vì bạn biết điểm tin trông có sẵn tất phần phổ biến, xem làm để phân tách điểm tin sử dụng công nghệ khác có sẵn Android Bạn bắt đầu với SAX 5.Sử dụng SAX Trong môi trường Java, bạn thường xuyên sử dụng SAX API bạn muốn có trình phân tích nhanh muốn hạn chế tối đa việc sử dụng (footprint) nhớ ứng dụng bạn Điều khiến cho cho phù hợp cho thiết bị di động chạy Android Bạn sử dụng SAX API từ môi trường Java, mà không cần đến thay đổi đặc biệt cần thiết để chạy Android.Ví dụ trình bày thực thi SAX giao diện FeedParser Ví dụ Thực thi SAX public class SaxFeedParser extends BaseFeedParser { protected SaxFeedParser(String feedUrl){ super(feedUrl); } public List parse() { SAXParserFactory factory = SAXParserFactory.newInstance(); try { SAXParser parser = factory.newSAXParser(); RssHandler handler = new RssHandler(); parser.parse(this.getInputStream(), handler); return handler.getMessages(); } catch (Exception e) { throw new RuntimeException(e); } } } Nếu trước bạn sử dụng SAX, trông quen thuộc Như với thực thi SAX nào, phần lớn chi tiết nằm trình xử lý SAX Trình xử lý nhận kiện từ trình phân tích SAX chạy nhanh qua tài liệu XML Trong trường hợp này, bạn vừa tạo lớp gọi RssHandler đăng ký trình xử lý cho trình phân tích, Ví dụ Ví dụ Trình xử lý SAX import static org.developerworks.android.BaseFeedParser.*; public class RssHandler extends DefaultHandler{ private List messages; private Message currentMessage; private StringBuilder builder; public List getMessages(){ return this.messages; } @Override public void characters(char[] ch, int start, int length) throws SAXException { super.characters(ch, start, length); builder.append(ch, start, length); } @Override public void endElement(String uri, String localName, String name) throws SAXException { super.endElement(uri, localName, name); if (this.currentMessage != null){ if (localName.equalsIgnoreCase(TITLE)){ currentMessage.setTitle(builder.toString()); } else if (localName.equalsIgnoreCase(LINK)){ currentMessage.setLink(builder.toString()); } else if (localName.equalsIgnoreCase(DESCRIPTION)){ currentMessage.setDescription(builder.toString()); } else if (localName.equalsIgnoreCase(PUB_DATE)){ currentMessage.setDate(builder.toString()); } else if (localName.equalsIgnoreCase(ITEM)){ messages.add(currentMessage); } builder.setLength(0); } } @Override public void startDocument() throws SAXException { super.startDocument(); messages = new ArrayList(); builder = new StringBuilder(); } @Override public void startElement(String uri, String localName, String name, Attributes attributes) throws SAXException { super.startElement(uri, localName, name, attributes); if (localName.equalsIgnoreCase(ITEM)){ this.currentMessage = new Message(); } } } Lớp RssHandler mở rộng lớp org.xml.sax.helpers.DefaultHandler Lớp cung cấp thực thi mặc định, không thao tác cho tất phương thức tương tự kiện tạo trình phân tích SAX Điều cho phép lớp ghi chèn lên phương thức cần thiết RssHandler có API bổ sung, getMessages Cái trả danh sách đối tượng Message mà trình xử lý thu thập nhận kiện từ trình phân tích SAX Nó có hai biến khác, currentMessage cho thể Message phân tích, biến StringBuilder gọi builder lưu trữ liệu ký tự từ nút văn Các biến bắt đầu phương thứcstartDocument dẫn trình phân tích gửi kiện tương ứng cho trình xử lý Hãy xem phương thức startElement Ví dụ Phương thức gọi bắt gặp thẻ mở tài liệu XML Bạn cần quan tâm thẻ thẻ ITEM Trong trường hợp đó, bạn tạo Message Bây nhìn vào phương thức characters Phương thức gọi bắt gặp liệu ký tự từ nút văn Dữ liệu dễ dàng thêm vào biến builder Cuối xem phương thức endElement Phương thức gọi bắt gặp thẻ kết thúc Đối với thẻ tương ứng với đặc tính Message, giống TITLE LINK, đặc tính thích hợp thiết đặt currentMessage sử dụng liệu từ biến builder Nếu thẻ kết thúc ITEM, currentMessage thêm vào danh sách Messages Đây phân tích SAX điển hình; Android Vì bạn biết cách viết trình phân tích SAX Java, bạn biết cách viết trình phân tích SAX Android Tuy nhiên, Android SDK có bổ sung thêm số tính thuận tiện vào SAX 6.Làm việc DOM DOM phân tích Android hỗ trợ hoàn toàn Nó làm việc xác làm việc mã trình Java mà bạn chạy máy tính để bàn máy chủ Ví dụ trình bày thực thi dựa DOM giao diện trình phân tích Ví dụ Thực thi dựa DOM trình phân tích điểm tin public class DomFeedParser extends BaseFeedParser { protected DomFeedParser(String feedUrl) { super(feedUrl); } public List parse() { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); List messages = new ArrayList(); try { DocumentBuilder builder = factory.newDocumentBuilder(); Document dom = builder.parse(this.getInputStream()); Element root = dom.getDocumentElement(); NodeList items = root.getElementsByTagName(ITEM); for (int i=0;i

Ngày đăng: 11/07/2017, 11:11

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan