Лабы Павловский 2018 / ООП ЛР 6
.docxМИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра вычислительной техники
отчет
по лабораторной работе №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();} }