Intern
95
questionbank
Что такое XML?
Ответ от нейросети
sobes.tech AI
Расширяемый язык разметки (eXtensible Markup Language) — текстовый формат файла, разработанный Консорциумом Всемирной паутины (W3C) для хранения, обмена и структурирования данных. Он удобен как для чтения человеком, так и для обработки машиной.
Отличается гибкостью и расширяемостью, позволяя определять собственные теги и структуру документа.
Принципы XML:
- Самоописание: Данные содержат информацию о своей структуре.
- Иерархическая структура: Данные представлены в виде дерева элементов.
- Разделение данных и представления: XML описывает данные, а стили (например, XSLT) определяют их отображение.
- Текстовый формат: XML-документы являются обычным текстом.
Основные компоненты XML:
- Элементы: Основные структурные блоки, содержащие данные или другие элементы. Имеют начальный и конечный тег (например,
<имя>... </имя>). - Атрибуты: Пары имя-значение, предоставляющие дополнительную информацию об элементе (например,
<пользователь id="123">). - Пролог: Необязательная часть в начале документа, содержащая объявление XML и, возможно, ссылку на DTD или XML Schema.
- Комментарии: Неинтерпретируемый текст для пояснений (например,
<!-- Это комментарий -->).
<!-- Пример простого XML-документа -->
<?xml version="1.0" encoding="UTF-8"?>
<книга>
<название>Чистый код</название>
<автор>Роберт Мартин</автор>
<год publications="2008">2008</год>
</книга>
Использование XML в Java:
- Парсинг: ЧБИ
javax.xml.parsers(SAX, DOM) для чтения XML-документов. - Генерация: Создание XML-документов программно.
- Преобразование: XSLT для трансформации XML в другие форматы.
- Биндинг данных: JAXB (Java Architecture for XML Binding) для маппинга между XML и Java-объектами.
Пример DOM-парсинга в Java:
import org.w3c.dom.*;
import javax.xml.parsers.*;
import java.io.*;
public class XmlParserExample {
public static void main(String[] args) {
try {
File xmlFile = new File("книга.xml"); // предполагаем наличие файла книга.xml
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("книга");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("Название книги: "
+ eElement.getElementsByTagName("название").item(0).getTextContent());
System.out.println("Автор: "
+ eElement.getElementsByTagName("автор").item(0).getTextContent());
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}