Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Parsing started

В текстовых блоках нельзя использовать символы | Faculty CDATA #REQUIRED | ERROR - 14 : 41 - cvc-attribute.3: The value 'mit' of attribute 'login' on element 'student' is not valid with respect to its type, 'login'. | Xjc university.xsd | Древовидная и событийная модели | Изменение XML-документа | XMLStreamConstants.ENTITY_DECLARATION | Student: Login: mit Faculty: mmf |


Читайте также:
  1. Design pattern recovery through visual language parsing and source code analysis
  2. Getting Started
  3. Getting started on your essay.
  4. Not a word had she written since the exam had started.
  5. WRITER’S BLOCK AND GETTING STARTED

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.

/* # 7: формирование коллекции объектов на основе XML-документа: StudentHandler.java */

package by.bsu.chapt16.analyzer.sax;

public enum StudentEnum {

NAME, TELEPHONE, STREET, CITY, COUNTRY

}

package chapt16.analyzer.sax;

import org.xml.sax.Attributes;

import org.xml.sax.helpers.DefaultHandler;

import java.util.ArrayList;

import chapt16.entity.Student;

 

public class StudentHandler extends DefaultHandler {

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

Student curr = null;

StudentEnum currentEnum = null;

 

public ArrayList<Student> getStudents() {

return students;

}

public void startElement(String uri, String localName,

String qName, Attributes attrs) {

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

curr = new Student();

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

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

}

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

!"student".equals(qName) &&

!"students".equals(qName)) {

currentEnum =

StudentEnum. valueOf (qName.toUpperCase());

}

}

public void endElement(String uri, String localName,

String qName) {

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

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(new Integer(s));

break;

case STREET:

curr.getAddress().setStreet(s);

break;

case CITY:

curr.getAddress().setCity(s);

break;

case COUNTRY:

curr.getAddress().setCountry(s);

break;

throw new EnumConstantNotPresentException(

this. getDeclaringClass(), this. name());

}

}

}

/* пример # 8: создание и запуск парсера: SAXStudentMain.java */

package chapt16.main;

import org.xml.sax.XMLReader;

import org.xml.sax.helpers.XMLReaderFactory;

import org.xml.sax.SAXException;

import java.util.ArrayList;

import chapt16.analyzer.sax.StudentHandler;

import chapt16.entity.Student;

import java.io.IOException;

 

public class SAXStudentMain {

public static void main(String[] args) {

try {

ArrayList <Student> list;

//создание SAX-анализатора

XMLReader reader =

XMLReaderFactory.createXMLReader();

//создание объекта-обработчика

StudentHandler sh = new StudentHandler();

reader.setContentHandler(sh);

//разбор XML-документа

reader.parse("students.xml");

list = sh.getStudents();

System. out. println(list);

} catch (SAXException e) {

e.printStackTrace();

System. out. print("ошибка SAX парсера");

} catch (IOException e) {

e.printStackTrace();

System. out. print("ошибка I/О потока");

}

}

}

В результате на консоль будет выведена следующая информация:

[

Login: mit


Дата добавления: 2015-11-14; просмотров: 65 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Событийная модель| Org.w3c.dom.Text

mybiblioteka.su - 2015-2024 год. (0.007 сек.)