Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

12.XML

.pdf
Скачиваний:
9
Добавлен:
23.05.2015
Размер:
1.65 Mб
Скачать

е . ел

е ул т т

Student:

name: Nikolaj surname: Ivanov age: 23

group: PF-11 Student:

name: Petr surname: Kilkin age: 22

group: FP-22 Student:

name: Petr surname: Taranov age: 43

group: FP-33

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

11

о XML доку е то

XML п

е

:

 

 

 

 

 

 

 

 

 

DOM-п

е

(Document Object Model) – п ед

тел

о

л

 

ует

XMэ-доку

е т

о

ет

де е о

ле

е то

XMэ

опе т

о п

т

. Т е

о

теле

к е у

.

 

SAX-п

е

(Simple API for XML) — п е , о

о

 

 

о

т

event-based .

 

т ,

 

ет

о

тол ко

 

ко к

ет

о

т

доку

е

т .

 

ет

ло п

т .

 

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

12

SAX API

SAX API

п

е е org.xml.sax

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ед т

л ет

леду

 

е

те

е

дл

 

пул

о

 

XML:

 

 

 

 

ContentHandler – кл

е о

 

те

е .

 

 

 

л

е

етод

те

е

 

 

XMLReader

оо

 

ет п ло е

 

о

оде

о

 

 

е

о о доку

е т

 

 

DTDHandler – оп едел ет

етод

кото

е

пол

у

т

дл

полу е

от

 

 

 

XMэReader

о

 

 

о

от

 

 

ео

т

е

о

 

ле

у

о те

 

 

DTD доку е т .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ErrorHandler –

пол

ует

дл

е е

 

де о

п едуп е

де

, о

ке

л

 

е

п

о о

 

ке.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InputSource – оп

 

 

ет

то

 

к

од

 

д

: поток

т

л

оло ,

л

 

т.п. откуд п

е

у

т

т

доку

е

т.

 

 

 

 

 

 

 

 

 

XMLReader – о

о

о

те

е

оде

 

 

етод

п

е

е л

о

е

 

 

д у

кл

, т к

к к SAXParser

л

SAXParcerFactory

 

 

 

 

 

кет org.xml.sax.helpers – оде

т по о тел

е кл

ео од

е п

 

оте SAX-п е

: DefaultHandler, XMLReaderFactory, XMLReaderImpl,

 

ParserAdapter.

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

13

е. SAX-п

1.import javax.xml.parsers.*;

2.import org.xml.sax.*;

3.import java.io.IOException;

4.public class SAXExample extends org.xml.sax.helpers.DefaultHandler {

5.public void process(String filename)

6.throws SAXException, IOException, ParserConfigurationException {

7.SAXParserFactory.newInstance().

8.newSAXParser().parse(filename, this);

9.}

10.public static void main(String[] args) throws Exception {

11.

12.new SAXExample().process(args[0]);

13.}

14. ...

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

14

е . SAX-п

. одол е е

14. ...

15.private int level = 0;

16.private boolean inStudent = false;

17.private StringBuffer text = new StringBuffer();

18.@OVERRIDE

19.public void startElement(String uri, String localName, String qName, Attributes attributes)

20.throws SAXException {

21.

22.level++;

23.if (level == 2 && qName.equals("student")) {

24.inStudent = true;

25.System.out.println("Student:");

26.}

27.text.setLength(0);

28.}

29.@OVERRIDE

30.public void characters(char[] ch, int start, int length) throws SAXException {

31.text.append(ch, start, length);

32.}

33.@OVERRIDE

34.public void endElement(String uri, String localName, String qName) throws SAXException {

35.if (level == 3 && inStudent)

36.System.out.println(" "+ qName +": "+ text);

37.if (level == 2)

38.inStudent = false;

39.level--;

40.}

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

15

DOM API

DOM API

п

 

е е org.

 

3c.dom)

 

 

 

 

 

 

 

ед т л ет леду

 

е

те

е

 

:

 

 

 

 

 

 

 

 

 

Node – п ед т

л ет п

о

 

ол

 

 

ле

е т де

е

кл

 

тек т

т

ут .

Document – п ед т

л ет доку

е т DOM

 

лу

т ко

 

е де е

доку е т .

DocumentType – д

 

 

 

те

 

е

п ед т

л ет DTD доку е

т

 

 

Element – п

ед т

л ет

ле

е

т

т

доку

 

е т , кото

 

о

ет

ет

поду л .

DocumentFragment – п ед т

л ет

т

л

е

т

доку

е

т , од

л

е кол ко

е

 

у ло

о

е

под ле

 

е т

.

 

 

 

 

 

CDATASection – п ед т

 

л ет

 

дел CDATA.

 

 

 

 

 

 

 

NodeList – п ед т

л ет упо

до е

ое

о

е т о у ло

п ед

 

е

тол ко

дл те .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DOMException – п

по о

де

 

о

к API DOM

о д ет

к е

пл д

о о

кл

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

16

е. DOM-п

1.import org.w3c.dom.*;

2.import javax.xml.parsers.*;

3.import org.xml.sax.*;

4.import java.io.IOException;

5.public class DOMExample {

6.public static Document parse(String filename)

7.throws ParserConfigurationException, SAXException, IOException {

8.return DocumentBuilderFactory.newInstance().

9. newDocumentBuilder().parse(filename);

10.}

11.public static void main(String[] args) throws Exception {

12.Document doc = parse(args[0]);

13.NodeList items = doc.getDocumentElement().getChildNodes();

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

15. if (items.item(i).getNodeName().equals("student"))

16. printStudent(items.item(i));

17.}

18.private static void printStudent(Node node) {

19.System.out.println("Student:");

20.NodeList nodes = node.getChildNodes();

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

22.

if (nodes.item(i).getNodeType() == Node.ELEMENT_NODE)

23.

System.out.println(" "+ nodes.item(i).getNodeName() + ": "+

24.

nodes.item(i).getFirstChild().getNodeValue());

25.

}

26.}

 

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

17

XSL eXtensible Stylesheet Language

XSLT – т

 

о

 

. XML доку

е т, оп

 

по о

п ео

о

 

од о о XML доку

е т д у о

е о

тел о

XML) доку

е т.

о т

т о е

 

 

 

http://www.w3.org/1999/XSL/Transform.

XPath

XML

. С

,

,

щ .

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

18

XSLT eXtensible Stylesheet Language Transformations

<template match="xpath expression">... body ...</template>

<value-of select="xpath expression"/>

<for-each select="xpath expression">... body ...</for-each>

<sort select="xpath"/>

<if test="xpath">...</if>

<choose>

<when test="xpath">...</when> <otherwise>...</otherwise> </choose>

<apply-templates select="xpath"/>

<output method="xml|html|text" version="string" encoding="string" omit-xml-declaration="yes|no" doctypepublic="string"

doctype-system="string" indent="yes|no"/>

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

19

XPath

е : /html/body/*/span[@name="span1"

оо: /child::html/child::body/child::*/child::span[attribute::name="span1"]

О :

ancestor, ancestor-or-self, attribute (@), child (нет), descendant, descendant-or-self (//), following, following-sibling, namespace, parent (..), preceding, preceding-sibling, self (.)

Фу к :

document, format-number, node, text, current, position, last, count, id, sum

е :

node//li[last()]

../text()

/root/@attribute

//book[price > 20]

document($path)/root/node

© 2010 NetCracker Technology Corp. Confidential.

12/17/2013

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]