Как создавать и читать xml файлы в java?

Пользователь

от yasmine , в категории: Java , год назад

Как создавать и читать xml файлы в java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jensen , год назад

@yasmine 

В Java для создания и чтения XML файлов можно использовать библиотеку Java API for XML Processing (JAXP). JAXP предоставляет стандартные интерфейсы для работы с XML, такие как DOM (Document Object Model), SAX (Simple API for XML) и StAX (Streaming API for XML).


Пример создания XML файла с использованием DOM:

 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
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class CreateXmlFile {
   public static void main(String[] args) {

      try {
         DocumentBuilderFactory dbFactory =
            DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.newDocument();

         // создание корневого элемента
         Element rootElement = doc.createElement("catalog");
         doc.appendChild(rootElement);

         // создание элемента book
         Element book = doc.createElement("book");
         rootElement.appendChild(book);

         // создание элемента title
         Element title = doc.createElement("title");
         title.appendChild(doc.createTextNode("Java для чайников"));
         book.appendChild(title);

         // создание элемента author
         Element author = doc.createElement("author");
         author.appendChild(doc.createTextNode("Барри Берд"));
         book.appendChild(author);

         // запись содержимого в XML файл
         TransformerFactory transformerFactory =
         TransformerFactory.newInstance();
         Transformer transformer = transformerFactory.newTransformer();
         DOMSource source = new DOMSource(doc);
         StreamResult result =  new StreamResult(new File("book.xml"));
         transformer.transform(source, result);
         System.out.println("XML файл создан!");

      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}


Пример чтения XML файла с использованием DOM:

 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
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class ReadXmlFile {
   public static void main(String[] args) {

      try {
         File inputFile = new File("book.xml");
         DocumentBuilderFactory dbFactory =
            DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.parse(inputFile);
         doc.getDocumentElement().normalize();

         // получение корневого элемента
         Element rootElement = doc.getDocumentElement();

         // получение списка элементов book
         NodeList nodeList = rootElement.getElementsByTagName("book");

         // вывод информации о каждой книге
         for (int i = 0; i < nodeList.getLength(); i++) {
            Element element = (Element) nodeList.item(i);
            System.out.println("Книга #" + (i+1));
            System.out.println("Название: " + element.getElementsByTagName("title")
                  .item(0).getTextContent());
            System.out.println("Автор: " + element.getElementsByTagName("author")
                  .item(0).getTextContent());
         }
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}


Это лишь примеры использования DOM для создания и чтения XML файлов. В зависимости от ваших потребностей, может быть полезным использовать другие интерфейсы JAXP, такие как SAX или StAX.

Пользователь

от deion , 4 месяца назад

@yasmine 

Вам были предоставлены примеры использования DOM для создания и чтения XML файлов в Java с помощью JAXP. Для более сложных и специфических задач также могут быть использованы другие библиотеки, такие как JAXB (Java Architecture for XML Binding) для преобразования XML в Java объекты и обратно, или XStream для удобного чтения/записи XML.


Если у вас есть конкретные требования или вопросы относительно работы с XML в Java, пожалуйста, уточните их, чтобы мы могли предоставить более точную помощь.