.


:




:

































 

 

 

 


XMLReaderFactory.createXMLReader(




org.apache.xerces.parsers.SAXParser);

3. XMLReader , 1 :

setContentHandler(), setErrorHandler(),

setDTDHandler(), setEntityResolver().

4. parse(), (URI) InputSource.

XML-.

/* # 1: XML-: SimpleHandler.java */

package chapt16.analyzer.sax;

import org.xml.sax.ContentHandler;

import org.xml.sax.Attributes;

 

public class SimpleHandler implements ContentHandler {

 

public void startElement(String uri, String localName,

String qName, Attributes attrs) {

String s = qName;

//

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

s += " " + attrs.getQName(i) + "="

+ attrs.getValue(i) + " ";

}

System. out. print(s.trim());

}

public void characters(char [] ch,

int start, int length) {

System.out.print(new String(ch, start, length));

}

public void endElement(String uri,

String localName, String qName) {

System. out. print(qName);

}

}

/* # 2: : SAXSimple.java*/

package chapt16.main;

Import org.xml.sax.XMLReader;

Import org.xml.sax.XMLReaderFactory;

import org.xml.sax.SAXException;

import javax.xml.parsers.ParserConfigurationException;

import java.io.IOException;

import chapt16.analyzer.sax.SimpleHandler;

 

public class SAXSimple {

public static void main(String[] args) {

try {

// SAX-

XMLReader reader = XMLReaderFactory.createXMLReader();

SimpleHandler contentHandler = new SimpleHandler();

reader.setContentHandler(contentHandler);

reader.parse("students.xml");

} catch (SAXException e) {

e.printStackTrace();

System. out. print(" SAX ");

} catch (ParserConfigurationException e) {

e.printStackTrace();

System. out. print(" ");

} catch (IOException e) {

e.printStackTrace();

System. out. print(" I/ ");

}

}

}

( XML- DTD):

Students

student login=mit faculty=mmf

Name Mitar Alex name

Telephone 2456474 telephone

Address

Country Belarus country

City Minsk city

Street Kalinovsky 45 street

Address

Student

student login=pus faculty=mmf

Name Pashkun Alex name

Telephone 3453789 telephone

Address

Country Belarus country

City Brest city

Street Knorina 56 street

Address

Student

Students

students.xml Student.

/* # 3: XML-: StudentHandler.java */

package chapt16.analyzer.sax;

 

enum StudentEnum {

NAME, TELEPHONE, STREET, CITY, COUNTRY

}

package chapt16.analyzer.sax;

import org.xml.sax.Attributes;

import org.xml.sax.ContentHandler;

import java.util.ArrayList;

import chapt16.entity.Student;

 

public class StundentHandler implements ContentHandler {

ArrayList<Student> students = new ArrayList<Student>();

Student curr = null;

StudentEnum currentEnum = null;

 

public ArrayList<Student> getStudents() {

return students;

}

public void startDocument() {

System.out.println("parsing started");

}

public void startElement(String uri, String localName,

String qName, Attributes attrs) {

if (qName.equals("student")) {

curr = new Student();

curr.setLogin(attrs.getValue(0));

curr.setFaculty(attrs.getValue(1));

}

if (!"address".equals(qName) &&

!"student".equals(qName) &&

!qName.equals("students"))

currentEnum =

StudentEnum.valueOf(qName.toUpperCase());

}

public void endElement(String uri, String localName,

String qName) {

if (qName.equals("student"))

students.add(curr);

currentEnum = null;

}

public void characters(char [] ch, int start,

int length) {

String s = new String(ch, start, length).trim();

if (currentEnum == null) return;

switch (currentEnum) {

case NAME:

curr.setName(s);

break;

case TELEPHONE:

curr.setTelephone(s);

break;

case STREET:

curr.getAddress().setStreet(s);

break;

case CITY:

curr.getAddress().setCity(s);

break;

case COUNTRY:

curr.getAddress().setCountry(s);

break;

}

}

}

/* # 4: : SAXStudentMain.java */

package chapt16.main;





:


: 2016-04-03; !; : 424 |


:

:

, .
==> ...

1760 - | 1668 -


© 2015-2024 lektsii.org - -

: 0.04 .