1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình XML với Java pdf

43 343 3

Đ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 43
Dung lượng 528,98 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

XML Parser dung tài liệu XML theo mô hình cây phân cấp for XML , StAX Parser: phát sinh các sự kiện trong quá trình duyệt tài liệu Xml... Application sẽ tạo các event listener lắng nghe

Trang 1

Trình bày: Ngô Bá Nam Phương

Lập trình XML với Java

Trang 2

Nội dung trình bày

Trang 3

XML Parser

dung tài liệu XML theo mô hình cây phân cấp

for XML ), StAX Parser: phát sinh các sự kiện trong quá trình duyệt tài liệu Xml

Trang 5

DOM Parser

Trang 6

SAX Parser

lớn và nội dung xử lý tương đối đơn giản

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

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ề

Trang 7

StAX Parser (Streaming API for XML )

đơn giản và thuận tiện hơn SAX parser

các sự kiện cần quan tâm để truy xuất nội dung tài liệu

Trang 8

Nội dung trình bày

Đọc nội dung tài liệu XML

Trang 9

Đọc tài liệu XML

Trang 11

DOM Parser

// truy cập node gốc của tài liệu

Element root =

// lấy về danh sách node con của một node

Trang 12

DOM Parser

// Xử lý các node con dạng Element

NodeList list = root.getChildNodes();

for(int i=0;i<list.getLength();++i)

{

Node node = list.item(i);

if(node instanceof Element )

{

// xử lý node name và size

Element element = ( Element ) node;

}

}

Trang 13

Text textNode = (Text)element.getFirstChild();

if(element.getTagName().equals(“name”))

name = content;

size = Integer.parseInt(content);

Trang 14

DOM Parser

các node con của 1 node

Trang 15

DOM Parser

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<attributes.getLength();++i)

{

Node attributeNode = attributes.item(i);

String name = attributeNode getNodeName ();

String value = attributeNode getNodeValue ();

}

Trang 16

DOM Parser

tính

< Sach MaSach =“1” TenSach =“VB.NET” />

String maSach = element getAttribute (“ MaSach ”); String tenSach = element getAttribute (“ TenSach ”);

Trang 17

Đọc tài liệu XML

XPath Expression

Trang 18

XPath

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

Trang 21

Đọc tài liệu XML

StAX Parser

Trang 22

StAX Parser - Events

START_ELEMENT , element name: font

START_ELEMENT , element name: name

END_ELEMENT , element name: name

START_ELEMENT , element name: size

END_ELEMENT , element name: size

END_ELEMENT , element name: font

Trang 25

StAX Parser

Lấy giá trị thuộc tính bên trong Element:

< Sach SoTrang ="102" ISBN ="104">

String soTrang = parser.getAttributeValue(null,

"SoTrang");

String ISBN =

parser.getAttributeValue(null,"ISBN");

Trang 26

Nội dung trình bày

Tạo tài liệu XML

Trang 27

Tạo tập tin XML – DOM Parser

Trang 28

Tạo tập tin XML - DOM

Element root =

Element child1 =

Trang 29

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", "2");

t.transform(new DOMSource (doc), new

StreamResult (new FileOutputStream ( "temp.xml" )));

Trang 30

Tạo tập tin Xml - StAX

Trang 31

Tạo tập tin Xml - StAX

File file = new File("StAXOutput.xml");

Trang 32

Tạo tập tin Xml - StAX

writer writeStartElement (“Sach”);

writer writeAttribute (“ MaSach ”,” 123 ”);

writer writeStartElement (“TenSach”);

writer writeCharacters (“ harry potter ”); writer writeEndElement ();

writer writeStartElement (“GiaTien”);

writer writeCharacters (“ 123000 ”); writer writeEndElement ();

writer writeEndElement ();

writer writeEndDocument ();

Trang 33

Nội dung trình bày

XSLT

Trang 34

XSLT – XSL Transformation

tài liệu XML sang format khác ( plain text, XML, HTML, )

Trang 36

Biểu thức XPATH

Trang 38

-Không có template

Mặc định : trả ra nội dung của thẻ a1

< xsl:template match =“/”>

< /xsl:template >

<xsl:apply-templates/>

Trang 40

</ xsl:template >

Trang 41

< xsl:value-of select ="hiredate/@day" /> -

< xsl:value-of select ="hiredate/@month" /> -

< xsl:value-of select ="hiredate/@year" />

</ td >

</ tr >

</ xsl:template >

Trang 42

XSLT – XSL Transformation

StreamSource styleSource = new

StreamSource (styleSheet);

TransformerFactory factory =

TransformerFactory newInstance();

Transformer t =

t.transform( new StreamSource (file), new

StreamResult ( “output.html" ));

Trang 43

Cám ơn – Hỏi đáp

Ngày đăng: 08/08/2014, 19:20

TỪ KHÓA LIÊN QUAN

w