Посоветуйте что-нибудь для xml в java

201
06 января 2018, 02:43

С помощью каких методов в java реализуется поиск по тегу в xml файле? И вот я допустим нашел нужный мне тег, а потом с пом. какого метода вытащить значение из него? Или посоветуйте пожалуйста книгу по этому вопросу. В интернете только какие то примеры, которые мне не очень подходят.

Xml-файл допустим вот такой.

<?xml version="1.0" encoding="UTF-8"?>
<Lift>
    <variables>
        <variable value = "25"/>
        <variable value = "30"/>
    </variables>
</Lift>
Answer 1

Ну как вариант, заюзать DocumentBuilderFactory.

 public Document parse(final File file) {
    Document doc = null;
    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setValidating(false);
        factory.setIgnoringComments(true);
        doc = factory.newDocumentBuilder().parse(file);
    } catch (IOException | ParserConfigurationException | SAXException e) {
        log.error("XMLParser: Error loading file " + file, e);
    }
    return doc;
}

Ну, а дальше по дереву бегать и дергать нужные элементы.

final Document doc = parse(new File("xml.xml"));
    for (Node n = doc.getFirstChild(); n != null; n = n.getNextSibling()) {
        for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling()) {
            for (Node m = d.getFirstChild(); m != null; m =m.getNextSibling()) {
                if ("variable".equals(m.getNodeName())) {
                    final String value = m.getAttributes().getNamedItem("value").getNodeValue().trim();
                    System.out.println(value);
                }
            }
        }
    }

на коленке начиркал, а так, можно сделать рекурсию, в обход всех тегов и аттрибутов.

READ ALSO
Связать таблицы. Hibernate

Связать таблицы. Hibernate

Как построить связь при такой задаче и вообще можно ли такое сделать

229
XML, JAXB многие-ко-многим на JAVA

XML, JAXB многие-ко-многим на JAVA

Всем приветЕсть вот такой XML:

189
Помогите понять некоторые термины

Помогите понять некоторые термины

Немного сложнаЭкземпляр - это экземпляр класса(Passenger)? А контейнер - это структура данных(коллекция, массив)? Свойство - это как свойства тут?...

190
Можно ли получит параметр `flatMap` в стриме?

Можно ли получит параметр `flatMap` в стриме?

Можно ли получит параметр flatMap в стриме ?

201