¿cómo parsear xml a objeto java?

Tengo un XML que se utiliza para configurar algunas reglas, no tiene estructura compleja, pero esta configuración se utiliza en cualquier parte de mi sistema, así que quiero analizar este XML a objeto Java y el diseño como el modo singleton, ¿hay alguna buena manera de que pueda utilizar para unmarshal XML a objeto Java directamente sin escribir mucho código?

Hice algunas investigaciones en Google y conocido JAXB es una opción, mi aplicación es sólo algunos tipos de programa de herramientas que leen la regla y luego seguir hacer cosas, JAXB podría ser utilizado para el servicio web más ampliamente, se ajusta a mis proyectos?

En caso afirmativo, la pregunta más importante es, he utilizado xjc para generar java objeto fuente de clase de acuerdo xsd archivo, después de unmarshal voy a obtener directamente estos configurationType objeto, ¿es necesario convertir de nuevo, (de las clases JaxB a mi propia configuración de objetos java pojo), veo que la mayoría de codificador hizo esto, pero ¿por qué? porque son algunos datos, sólo desde el objeto generado a JAXB y copiar a nosotros mismos creado POJO objeto

JAXB es una solución ideal. Pero para ello no se necesita necesariamente xsd y xjc. Lo más frecuente es que no tengas un xsd pero sepas cuál es tu xml. Simplemente analiza tu xml, por ejemplo,


    29
    mkyong

Cree la(s) clase(s) modelo(s) necesaria(s):

@XmlRootElement
public class Customer {

    String name;
    int age;
    int id;

    public String getName() {
        return name;
    }

    @XmlElement
    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    @XmlElement
    public void setAge(int age) {
        this.age = age;
    }

    public int getId() {
        return id;
    }

    @XmlAttribute
    public void setId(int id) {
        this.id = id;
    }

}

Intenta desmarcar:

JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(new File("C:\\file.xml"));

Comprobar resultados, corregir errores.

Comentarios (6)

Para realizar Unmarshall utilizando JAXB:

  1. Convierte el XML dado a XSD (por ti mismo o por un conversor online),

  2. Crear un proyecto JAXB en eclipse,

  3. Crear un archivo XSD y pegar el contenido XSD convertido en él,

  4. Haga clic derecho en **XSD file--> Generate--> JAXB Classes-->siga las instrucciones (esto creará todos los archivos .java nessasary en src, es decir, un paquete-info, fábrica de objetos y clase pojo),

  5. Cree otro archivo .java en src para operar la operación unmarshall, y ejecútelo.

¡¡Feliz programación !!

Comentarios (0)

JAXB es una opción fiable ya que hace el mapeo de clases xml a java sin problemas. Pero hay otros marcos disponibles, aquí es uno de ellos:

https://code.google.com/p/xmappr/

Comentarios (1)