Danh mục

Lập trình XML với Java

Số trang: 43      Loại file: pdf      Dung lượng: 528.98 KB      Lượt xem: 18      Lượt tải: 0    
Jamona

Phí tải xuống: 16,000 VND Tải xuống file đầy đủ (43 trang) 0
Xem trước 5 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tham khảo tài liệu lập trình xml với java, công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả
Nội dung trích xuất từ tài liệu:
Lập trình XML với JavaLập trình XML với Java Trình bày: Ngô Bá Nam Phương 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ụ: Helvetica 36 Node font có 5 node con: whitespace name whitespace size whitespaceDOM 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)); DOM Parser// truy cập node gốc của tài liệuElement root = doc.getDocumentElement();// lấy về danh sách node con của một nodeNodeList list = root.getChildNodes();for(int i=0;i DOM Parser// Xử lý các node con dạng ElementNodeList list = root.getChildNodes();for(int i=0;i DOM Parser Rút trích nội dung trong node name và size: Element element = (Element)node; // đang truy cập tại node name và size Text textNode = (Text)element.getFirstChild(); String content = textNode.getData(); if(element.getTagName().equals(“name”)) name = content; else if(element.getTagName().equals(“size”)) size = Integer.parseInt(content); DOM Parser Cách khác để duyệt và xử lý trên danh sách các node con của 1 node for(Node childNode = element.getFirstChild(); childNode != null; childNode = childNode.getNextSibling() ) { … } DOM Parser Lấy danh sách attributes của 1 node: getAttributes : trả về NamedNodeMap đại diện cho danh sách các attribute của node NamedNodeMap attributes = element.getAttributes(); for(int i=0;i DOM Parser Lấy giá trị thuộc tính thông qua tên thuộc tính Ví dụ: String maSach = 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(); XPath Lấy giá trị của 1 element hoặc 1 attribute trong tài liệu: Ví dụ: 123 C# int id = Integer.parseInt(path.evaluate(“/EbookList/Ebook[1]/ID”,doc)); String title = path.evaluate(“/EbookList/Ebook[1]/Title”,doc); id = Integer.parseInt(path.evaluate(“/EbookList/Ebook[2]/@ID”,doc)); title = path.evaluate(“/EbookList/Ebook[2]/@Title”,doc); XPath Lấy về danh sách các Node NodeList list = (NodeList)path.evaluate(“/EbookList/Ebook”, doc, XPathContants.NODESET); Lấy về 1 node Node node = (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();

Tài liệu được xem nhiều: