Добавил:
github.com Кофедра ВТ-помойка Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
51
Добавлен:
14.11.2018
Размер:
218.31 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра вычислительной техники

отчет

по лабораторной работе №6

по дисциплине «Объектно-ориентированное программирование»

Тема: «Обработка XML-документов»

Студент гр. 6307

Лазарев С. О.

Преподаватель

Павловский М. Г.

Санкт-Петербург

2018

СОДЕРЖАНИ

ЦЕЛЬ 3

ЗАДАНИЕ 3

РАСПЕЧАТКИ СОДЕРЖИМОГО ФАЙЛОВ С ДАННЫМИ 4

ПРОЦЕСС ЗАГРУЗКИ И ВЫГРУЗКИ ДАННЫХ 6

ТЕКСТ ДОКУМЕНТАЦИИ 7

Method Summary 7

ВЫВОДЫ 7

ИСХОДНЫЙ КОД 8

ЦЕЛЬ 3

ЗАДАНИЕ 3

РАСПЕЧАТКИ СОДЕРЖИМОГО ФАЙЛОВ С ДАННЫМИ 4

ПРОЦЕСС ЗАГРУЗКИ И ВЫГРУЗКИ ДАННЫХ 6

ТЕКСТ ДОКУМЕНТАЦИИ 7

Method Summary 7

ВЫВОДЫ 7

ИСХОДНЫЙ КОД 8

ЦЕЛЬ 3

ЗАДАНИЕ 3

РАСПЕЧАТКИ СОДЕРЖИМОГО ФАЙЛОВ С ДАННЫМИ 4

ПРОЦЕСС ЗАГРУЗКИ И ВЫГРУЗКИ ДАННЫХ 6

ТЕКСТ ДОКУМЕНТАЦИИ 7

Method Summary 7

ВЫВОДЫ 7

ИСХОДНЫЙ КОД 8

ЦЕЛЬ

Знакомство с технологией обработки XML-документов и файлов.

ЗАДАНИЕ

С помощью текстового редактора создать файл, в котором будет описана структура XML-документа и данные для загрузки в экранную форму. Написать и заменить в проекте обработчики кнопок загрузки данных в XML-файл и выгрузки из него. Загрузить данные в экранную форму из XML-файла. Внести изменения в данные экранной формы и сохранить их в XML-файле. Сгенерировать документацию JavaDoc.

РАСПЕЧАТКИ СОДЕРЖИМОГО ФАЙЛОВ С ДАННЫМИ

Данные до редактирования (рисунок 1).

Рис. 1. Данные до редактирования

Данные после редактирования (рисунок 2).

Рис. 2. Данные после редактирования

ПРОЦЕСС ЗАГРУЗКИ И ВЫГРУЗКИ ДАННЫХ

Процесс выгрузки данных из файла представлен на рисунке 3.

Рис. 3. Выгрузка данных из файла.

Процесс загрузки данных в файл представлен на рисунке 4.

Рис. 4. Загрузка данных в файл.

ТЕКСТ ДОКУМЕНТАЦИИ

Method Summary

All MethodsInstance MethodsConcrete Methods

Modifier and Type

Method

Description

void

loadXML()

Метод выгрузки данных из XML файла

void

makeXml()

Метод загрузки данных в XML файл

  • makeXml

public void makeXml()

Метод загрузки данных в XML файл

  • loadXML

public void loadXML()

Метод выгрузки данных из XML файла

ВЫВОДЫ

В данной лабораторной работе я познакомился с технологией обработки XML-документов и файлов.

ИСХОДНЫЙ КОД

public void makeXml() { try { // Создание парсера документа DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); // Создание пустого документа Document doc = builder.newDocument(); // Создание корневого элемента window и добавление его в документ Node window = doc.createElement("window"); doc.appendChild(window); // Создание дочерних элементов dataEmploy и присвоение значений атрибутам for (int i = 0; i < model.getRowCount(); i++) { Element dataEmploy = doc.createElement("dataEmploy"); window.appendChild(dataEmploy); dataEmploy.setAttribute("familia", (String) model.getValueAt(i, 0)); dataEmploy.setAttribute("name", (String) model.getValueAt(i, 1)); dataEmploy.setAttribute("rang", (String) model.getValueAt(i, 2)); } try { // Создание преобразователя документа Transformer trans = TransformerFactory.newInstance().newTransformer(); // Создание файла с именем dataEmploy.xml для записи документа java.io.FileWriter fw = new FileWriter("dataEmploy.xml"); // Запись документа в файл trans.transform(new DOMSource(doc), new StreamResult(fw)); JOptionPane.showMessageDialog(null,"Данные загружены в файл dataEmploy.xml"); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } catch (ParserConfigurationException e) { e.printStackTrace(); } } public void loadXML(){ try{ // Создание парсера документа DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); Document doc = builder.newDocument(); // Чтение документа из файла doc = dBuilder.parse(new File("dataEmploy.xml")); // Нормализация документа doc.getDocumentElement().normalize(); // Получение списка элементов с именем dataEmploy NodeList nlDataEmploy = doc.getElementsByTagName("dataEmploy"); // Цикл просмотра списка элемента и запись данных в таблицу for(int temp = 0;temp<nlDataEmploy.getLength();temp++){ // Выбор очередного элемента списка Node elem = nlDataEmploy.item(temp); // Получение списка атрибутов документа NamedNodeMap attrs = elem.getAttributes(); // Чтение атрибутов элемента String familia = attrs.getNamedItem("familia").getNodeValue(); String name = attrs.getNamedItem("name").getNodeValue(); String rang = attrs.getNamedItem("rang").getNodeValue(); // Запись данных в таблицу model.addRow(new String[] {familia,name,rang}); } JOptionPane.showMessageDialog(window,"Данные загружены из файла dataEmploy.xml"); } catch (ParserConfigurationException e){e.printStackTrace();} // Обработка ошибки парсера при чтении данных из XML-файла catch (SAXException e){e.printStackTrace();} catch (IOException e){e.printStackTrace();} }

Соседние файлы в папке Лабы Павловский 2018