Как распарсить xml строку с помощью java?

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

от jaylen.trantow , в категории: Java , год назад

Как распарсить xml строку с помощью java?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от evalyn.barrows , год назад

@jaylen.trantow 

Для распарсинга XML строки в Java можно использовать различные библиотеки, такие как DOM, SAX и StAX. Рассмотрим пример использования библиотеки DOM для данной задачи:

  1. Подключите библиотеку DOM к проекту. Пример зависимости для Maven:
1
2
3
4
5
<dependency>
    <groupId>org.apache.xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.12.0</version>
</dependency>


  1. Создайте метод, который будет выполнять парсинг 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
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

public class XMLParser {
    public static void parseXML(String xmlString) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(new InputSource(new StringReader(xmlString)));
            
            // Получаем корневой элемент
            Element rootElement = document.getDocumentElement();
            
            // Выполняем обход элементов XML
            NodeList nodeList = rootElement.getChildNodes();
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                
                // Проверяем тип узла
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element) node;
                    
                    // Получаем значение элемента
                    String value = element.getTextContent();
                    
                    // Выполняем необходимую обработку значения элемента
                    System.out.println(value);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


  1. Вызовите метод parseXML(), передав в него XML строку. Пример:
1
2
3
4
5
6
public class Main {
    public static void main(String[] args) {
        String xmlString = "<root><element1>value1</element1><element2>value2</element2></root>";
        XMLParser.parseXML(xmlString);
    }
}


В данном примере XML строка будет распарсена, и ее значения элементов будут выведены в консоль.

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

от brooklyn , 8 месяцев назад

@jaylen.trantow 

Не требуется использовать внешнюю библиотеку для работы с XML в Java, так как Java поставляется с API для работы с XML - javax.xml.


Вот пример использования встроенных средств для парсинга XML в Java с использованием 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
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.w3c.dom.Node;

public class XMLParser {
    public static void parseXML(String xmlString) {
        try {
            DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(new InputSource(new StringReader(xmlString)));
            
            Element rootElement = document.getDocumentElement();
            NodeList nodeList = rootElement.getChildNodes();
            
            for (int i = 0; i < nodeList.getLength(); i++) {
                Node node = nodeList.item(i);
                
                if (node.getNodeType() == Node.ELEMENT_NODE) {
                    Element element = (Element) node;
                    String value = element.getTextContent();
                    System.out.println(value);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        String xmlString = "<root><element1>value1</element1><element2>value2</element2></root>";
        parseXML(xmlString);
    }
}


В этом примере создается объект Document из XML-строки. Затем мы получаем корневой элемент и проходим по его дочерним элементам, выводя их значение в консоль.


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