Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
528,98 KB
Nội dung
Trình bày: Ngô Bá Nam Phương Lập trình XML với Java Nội dung trình bày Xml Parsers Đọc nội dung tài liệu XML Tạo tài liệu XML XSLT XML Parser Java hỗ trợ 2 loại xml parser: Tree Parser - DOM Parser: phân tích nội dung tài liệu XML theo mô hình cây phân cấp Streaming Parser - SAX Parser ( Simple API for XML ), StAX Parser: phát sinh các sự kiện trong quá trình duyệt tài liệu Xml DOM Parser Ví dụ: <font> <name>Helvetica</name> <size>36</size> </font> Node font có 5 node con: whitespace name whitespace size whitespace DOM Parser SAX Parser Phù hợp đối với các tài liệu có kích thước lớn và nội dung xử lý tương đối đơn giản. Phát sinh các sự kiện tương ứng trong quá trình đọc tài liệu. Application sẽ tạo các event listener lắng nghe các event do parser phát ra để truy xuất nội dung tài liệu. DOM Parser được xây dựng bên trên SAX Parser. DOM Parser xây dựng cây tài liệu DOM tree dựa trên các event nó nhận được do SAX Parser trả về. StAX Parser (Streaming API for XML ) Cung cấp mô hình xử lý đọc tài liệu XML đơn giản và thuận tiện hơn SAX parser Application sẽ gọi các hàm của parser về các sự kiện cần quan tâm để truy xuất nội dung tài liệu Nội dung trình bày Xml Parsers Đọc nội dung tài liệu XML Tạo tài liệu XML XSLT Đọc tài liệu XML DOM Parser XPath Expression StAX Parser DOM Parser import javax.xml.parsers.*; import org.w3c.dom.*; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new File("Sach.xml")); [...]... END_ELEMENT, element name: font StAX Parser // Mở tài liệu xml import javax .xml. stream.*; XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader parser = factory.createXMLStreamReader(new FileReader("DBSach .xml" )); StAX Parser while(parser.hasNext()) { // Đọc và xử lý nội dung tài liệu XML int event = parser.next(); if(event == XMLStreamConstants.START_ELEMENT) { if(parser.getLocalName().equals("Sach")==true)... FileOutputStream("temp .xml" ))); Tạo tập tin Xml - StAX Sử dụng đối tượng XMLStreamWriter các phương thức: writeStartDocument() writeEndDocument() writeStartElement(“elementName”) writeEndElement() writeAttribute(“attributeName”,”attributeValue”) writeCharacters(“text”) Tạo tập tin Xml - StAX Tạo đối tượng XMLStreamWriter File file = new File("StAXOutput .xml" ); XMLOutputFactory factory = XMLOutputFactory.newInstance();... writer writeEndElement (); writer writeEndDocument (); Nội dung trình bày Xml Parsers Đọc nội dung tài liệu XML Tạo tài liệu XML XSLT XSLT – XSL Transformation Là ngôn ngữ đặc tả các luật để chuyển đổi tài liệu XML sang format khác ( plain text, XML, HTML, ) XSLT – XSL Transformation < ?xml version="1.0" encoding=“utf-8"?> ... String ISBN = parser.getAttributeValue(null,"ISBN"); Nội dung trình bày Xml Parsers Đọc nội dung tài liệu XML Tạo tài liệu XML XSLT Tạo tập tin XML – DOM Parser Tạo nội dung tài liệu XML: createElement( “nodeName” ); createTextNode( “textContent” ); appendChild( nodeName ); setAttribute( attributeName , value ); … Tạo tập tin XML - DOM Ví dụ: Element root = doc.createElement(“root”); Element... child.appendChild(textNode1); Tạo tập tin XML - DOM XML DOM API hiện thời không hỗ trợ việc kết xuất nội dung cây tài liệu lên bộ nhớ phụ Ta có thể sử dụng XSLT để thực hiện: import javax .xml. transform.*; Transformer t = TransformerFactory.newInstance().newTransformer() t.setOutputProperty (OutputKeys.INDENT, "yes"); t.setOutputProperty (OutputKeys.METHOD, "xml" ); t.setOutputProperty ("{http:/ /xml. apache.org/xslt}indent-amount",... tập tin Xml - StAX Tạo đối tượng XMLStreamWriter File file = new File("StAXOutput .xml" ); XMLOutputFactory factory = XMLOutputFactory.newInstance(); XMLStreamWriter writer = factory.createXMLStreamWriter(new FileOutputStream(file),"UTF-8"); Tạo tập tin Xml - StAX Ví dụ: harry potter 123000 writer.writeStartDocument(); writer writeStartElement... element.getAttribute(“MaSach”); String tenSach = element.getAttribute(“TenSach”); Đọc tài liệu XML DOM Parser XPath Expression StAX Parser XPath Là các biểu thức đường dẫn cho phép truy cập đến các node trong cây tài liệu dễ dàng mà không cần phải duyệt và tìm kiếm trên toàn bộ cây tài liệu Khởi tạo đối tượng XPath: import javax .xml. xpath.*; XPathFactory xpFactory = XPathFactory.newInstance(); XPath path = xpFactory.newXPath();... (Node)path.evaluate(“/EbookList/Ebook[1]”, doc, XPathContants.NODE); Lấy về kết quả là giá trị của một hàm int count = ((Number)path.evaluate("count(/EbookList/Ebook)", doc,XPathConstants.NUMBER)).intValue(); Đọc tài liệu XML DOM Parser XPath Expression StAX Parser StAX Parser - Events Helvetica 36 START_ELEMENT, element name: font CHARACTERS, content: white space... xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> template1 template2 XSLT – XSL Transformation : dùng để định nghĩa các template . Trình bày: Ngô Bá Nam Phương Lập trình XML với Java Nội dung trình bày Xml Parsers Đọc nội dung tài liệu XML Tạo tài liệu XML XSLT XML Parser Java hỗ trợ 2 loại xml parser:. Nội dung trình bày Xml Parsers Đọc nội dung tài liệu XML Tạo tài liệu XML XSLT Đọc tài liệu XML DOM Parser XPath Expression StAX Parser DOM Parser import javax .xml. parsers.*;. nội dung tài liệu XML theo mô hình cây phân cấp Streaming Parser - SAX Parser ( Simple API for XML ), StAX Parser: phát sinh các sự kiện trong quá trình duyệt tài liệu Xml DOM Parser Ví