|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Org.w3c.dom.Text
Интерфейс Text необходим для работы с текстом, содержащимся в элементе. String getWholeText() – возвращает текст, содержащийся в элементе; void replaceWholeText(String content) – заменяет строкой В следующих примерах производятся разбор документа students.xml /* пример # 6: создание анализатора и загрузка XML-документа: DOMLogic.java*/ package chapt16.main; import java.util.ArrayList; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; //import org.apache.xerces.parsers.DOMParser; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.xml.sax.SAXException; import chapt16.analyzer.dom.Analyzer; import chapt16.entity.Student;
public class DOMLogic { public static void main(String[] args) { try { // создание DOM-анализатора(JSDK) DocumentBuilderFactory dbf= DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); // распознавание XML-документа Document document = db.parse("students.xml");
// создание DOM-анализатора (Xerces) /* DOMParser parser = new DOMParser(); parser.parse("students.xml"); Document document = parser.getDocument();*/ Element root = document.getDocumentElement(); ArrayList<Student> students = Analyzer.listBuilder(root);
for (int i = 0; i < students.size(); i++) { System.out.println(students.get(i)); } } 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/О потока"); } } } /* пример # 7: создание объектов на основе объекта типа Element: Analyzer.java */ package chapt16.analyzer.dom; import java.util.ArrayList; import java.io.IOException; import org.xml.sax.SAXException; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import chapt16.entity.Student;
public class Analyzer { public static ArrayList<Student> listBuilder(Element root) throws SAXException, IOException { ArrayList<Student> students = new ArrayList<Student>(); // получение списка дочерних элементов <student> NodeList studentsNodes = root.getElementsByTagName("student"); Student student = null; for (int i = 0; i < studentsNodes.getLength(); i++) { student = new Student(); Element studentElement = (Element) studentsNodes.item(i); // заполнение объекта student student.setFaculty(studentElement.getAttribute("faculty")); student.setName(getBabyValue(studentElement, "name")); student.setLogin(studentElement.getAttribute("login")); student.setTelephone( getBabyValue(studentElement, "telephone"));
Student.Address address = student.getAddress(); // заполнение объекта address Element addressElement = getBaby(studentElement, "address"); address.setCountry( getBabyValue(addressElement, "country")); address.setCity( getBabyValue(addressElement, "city")); address.setStreet( getBabyValue(addressElement, "street"));
students.add(student); } return students; } // возвращает дочерний элемент по его имени и родительскому элементу private static Element getBaby(Element parent, String childName) { NodeList nlist = parent.getElementsByTagName(childName); Element child = (Element) nlist.item(0); return child; } // возвращает текст, содержащийся в элементе private static String getBabyValue(Element parent, String childName) { Element child = getBaby(parent, childName); Node node = child.getFirstChild(); String value = node.getNodeValue(); return value; } } JDOM JDOM не является анализатором, он был разработан для более удобного, более интуитивного для Java-программист, доступа к объектной модели XML-документа. JDOM представляет свою модель, отличную от DOM. Для разбора документа JDOM использует либо SAX-, либо DOM-парсеры сторонних производителей. Реализаций JDOM немного, так как он основан на классах, а не на интерфейсах. Разбирать XML-документы с помощью JDOM проще, чем с помощью Xerces. Иерархия наследования объектов документа похожа на Xerces. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.008 сек.) |