АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Attribute. Методы класса Attribute для установки значения, имени и типа атрибута:

Читайте также:
  1. Attribute
  2. Epithets are such attributes which describe objects expressively.
  3. ERROR - 14 : 41 - cvc-attribute.3: The value 'mit' of attribute 'login' on element 'student' is not valid with respect to its type, 'login'.
  4. THE ATTRIBUTE
  5. Метрика 2: Фактор закрытости свойства AHF (Attribute Hiding Factor)

Методы класса Attribute для установки значения, имени и типа атрибута:

Attribute setAttributeType(int type) – устанавливает тип атрибута;

Attribute setName(String name) – устанавливает имя атрибута;

Attribute setValue(String value) – устанавливает значение атрибута.

Следующий пример демонстрирует создание XML-документа и запись его в файл. Для записи XML-документа используется класс XMLOutputter.

/* пример # 10: создание и запись документа с помощью JDOM:

JDOMLogic.java */

package chapt16.saver.dom;

import java.io.FileOutputStream;

import java.io.IOException;

import java.util.List;

import java.util.Iterator;

import org.jdom.Document;

import org.jdom.Element;

import org.jdom.output.XMLOutputter;

import chapt16.entity.Student;

 

public class JDOMLogic {

public static Document create(List<Student> list) { //создание корневого элемента <studentsnew>

Element root = new Element("studentsnew");

Iterator<Student> studentIterator =

list.iterator();

while (studentIterator.hasNext()) {

Student student = studentIterator.next();

//создание элемента <student> и его содержимого

Element studentElement = new Element("student");

//создание атрибутов и передача им значений

studentElement.setAttribute("login",

student.getLogin());

studentElement.setAttribute("phone",

student.getTelephone());

 

Element faculty = new Element("faculty");

faculty.setText(student.getFaculty());

//«вложение» элемента <faculty> в элемент <student>

studentElement.addContent(faculty);

 

Element name = new Element("name");

name.setText(student.getName());

studentElement.addContent(name);

//создание элемента <address>

Element addressElement = new Element("address");

Student.Address address = student.getAddress();

 

Element country = new Element("country");

country.setText(address.getCountry());

addressElement.addContent(country);

 

Element city = new Element("city");

city.setText(address.getCity());

addressElement.addContent(city);

 

Element street = new Element("street");

street.setText(address.getStreet());

// «вложение» элемента <street> в элемент <address>

addressElement.addContent(street);

//«вложение» элемента <address> в элемент <student>

studentElement.addContent(addressElement);

//«вложение» элемента <student> в элемент <students>

root.addContent(studentElement);

}

//создание основного дерева XML-документа

return new Document(root);

}

public static boolean saveDocument(String fileName,

Document doc) {

boolean complete = true;

XMLOutputter outputter = new XMLOutputter();

// запись XML-документа

try {

outputter.output(doc, new FileOutputStream(fileName));

} catch (FileNotFoundException e) {

e.printStackTrace();

complete = false;

} catch (IOException e) {

e.printStackTrace();

complete = false;

}

return complete;

}

}

/* пример # 11: создание списка и запуск приложения: JDOMMainSaver.java*/

package chapt16.main;

import java.io.IOException;

import java.util.ArrayList;

import chapt16.entity.Student;

import chapt16.saver.dom.JDOMLogic;

 

public class JDOMMainSaver {

public static void main(String[] args) {

//создание списка студентов

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

for (int j = 1; j < 3; j++) {

Student st = new Student();

st.setName("Petrov" + j);

st.setLogin("petr" + j);

st.setFaculty("mmf");

st.setTelephone("454556"+ j*3);

Student.Address adr = st.getAddress();

adr.setCity("Minsk");

adr.setCountry("BLR");

adr.setStreet("Gaja, " + j);

st.setAddress(adr);

students.add(st);

}

//создание «дерева» на основе списка студентов

Document doc = JDOMLogic. create (students);

//сохранение «дерева» в XML-документе

if (JDOMLogic. saveDocument ("studentsnew.xml", doc))

System. out. println("Документ создан");

Else

System. out. println("Документ НЕ создан");

}

}

В результате будет создан документ studentsnew.xml следующего со­держания:

<?xml version="1.0" encoding="UTF-8"?>

<studentsnew>

<student login="petr1" phone="4545563">

<faculty>mmf</faculty>

<name>Petrov1</name>

<address>

<country>BLR</country>

<city>Minsk</city>

<street>Gaja, 1</street>

</address>

</student>

<student login="petr2" phone="4545566">

<faculty>mmf</faculty>

<name>Petrov2</name>

<address>

<country>BLR</country>

<city>Minsk</city>

<street>Gaja, 2</street>

</address>

</student>

</studentsnew>

В этом примере был использован JDOM, основанный на идее "if something doesn't work, fix it".

StAX

StAX (Streaming API for XML), который еще называют pull-парсером, включен в JDK, начиная с версии Java SE 6. Он похож на SAX отсутствием объектной модели в памяти и последовательным продвижением по XML, но в StAX не требуется реализация интерфейсов, и приложение само командует StAX-парсеру перейти к следующему элементу XML. Кроме того, в отличие от SAX, данный парсер предлагает API для создания XML-документа.

Основными классами StAX являются XMLInputFactory, XMLStreamReader и XMLOutputFactory, XMLStreamWriter, которые соответственно используются для чтения и создания XML-документа. Для чтения XML надо получить ссылку на XMLStreamReader:

StringReader stringReader = new StringReader(xmlString);

XMLInputFactory inputFactory=XMLInputFactory.newInstance();

XMLStreamReader reader = inputFactory

.createXMLStreamReader(stringReader);

после чего XMLStreamReader можно применять аналогично интерфейсу Iterator, используя методы hasNext() и next():

boolean hasNext() – показывает, есть ли еще элементы;

int next() – переходит к следующей вершине XML, возвращая ее тип.

Возможные типы вершин:


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.)