Лучший способ сделать XML в Java

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

Я хочу:

SomeApiDefinedObject o = parseXml( xml );
for( SomeApiDefinedObject it : o.getChildren() ) {
   System.out.println( it.getAttributes() );
}

Самые важные вещи состоят в том, что я не хочу создавать класс для каждого типа узла XML, я просто имел бы дело с ними всеми как строки, и что создание XML не требует никаких преобразователей или чего-либо, просто простой объект, который уже определяется

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

С другой стороны, для меня было бы лучше просто использовать Groovy от Java?

5
задан walnutmon 23 April 2010 в 12:08
поделиться

7 ответов

Вот кое-что, что вы можете быстро сделать с Sun Java Streaming XML Parser

    FileInputStream xmlStream = new FileInputStream(new File("myxml.xml"));
    XMLStreamReader reader = XMLInputFactory.newInstance().createXMLStreamReader(xmlStream);
    while(reader.hasNext()){
        reader.next();
        for(int i=0; i < reader.getAttributeCount(); i++) {
           System.out.println(reader.getAttributeName(i) + "=" + reader.getAttributeValue(i));
        }
    }
4
ответ дан 14 December 2019 в 04:33
поделиться

Я настоятельно рекомендую JAXB . Отлично подходит для фреймворка XML <--> Java-объектов.

0
ответ дан 14 December 2019 в 04:33
поделиться

Я работаю с Dozer и Castor для получения OTOM (Object to Object Mapping).

0
ответ дан 14 December 2019 в 04:33
поделиться

У меня хороший опыт работы с XStream . Это довольно быстро и будет сериализовать и десериализовать Java в / из XML без схемы и с очень небольшим кодом It Just Works ™. Создаваемые им иерархии объектов Java будут напрямую отражать ваш XML.

0
ответ дан 14 December 2019 в 04:33
поделиться

Похоже, все, что вам нужно, это простой DOM API, например, предоставляемый dom4j . На самом деле API DOM уже есть в стандартной библиотеке (пакеты org.w3c.dom ), но это только API, поэтому вам нужна отдельная реализация - можно также использовать что-то более продвинутое, например dom4j .

1
ответ дан 14 December 2019 в 04:33
поделиться

Используйте Groovy.

Похоже, что ваша основная цель - получить доступ к DOM «естественным» способом через средства доступа к объектам, а Java не позволит вам сделать это без определения классов. Groovy, потому что он «утиный», позволит вам это сделать.

Единственная причина не использовать Groovy состоит в том, что (1) обработка XML является очень небольшой частью вашего приложения и / или (2) вам приходится работать с другими людьми, которые могут захотеть программировать строго на Java.

Что бы вы ни делали, не решайте «просто обращаться со всеми ними как с строками». XML - это непростой формат, и, если вы не знаете спецификацию как внутри, так и снаружи, вы вряд ли поймете ее правильно. Это означает, что ваш XML будет отклонен синтаксическими анализаторами, соответствующими спецификации.

1
ответ дан 14 December 2019 в 04:33
поделиться

Раньше был очень маленький и простой XML-анализатор под названием NanoXML. Кажется, что он больше не разрабатывается, но он все еще доступен по адресу http://devkix.com/nanoxml.php

0
ответ дан 14 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: