Pregunta

Actualmente estoy usando JDOM para hacer un poco de análisis sintáctico XML simple, y parece que un tipo seguro de nada - que tenía un problema similar con el uso de la más API incorporado en Java DOM analizador, simplemente con una gran cantidad de vadear a través

Por ejemplo, XPath.selectNodes toma un Object como su argumento y devuelve una lista prima, que sólo se siente un poco de Java 1.1

¿Hay-zado genérico XML y bibliotecas XPath para Java, o hay alguna razón por la que simplemente no es posible hacer consultas XPath en una forma de tipo seguro?

¿Fue útil?

Solución

Si está familiarizado con los selectores CSS en HTML, puede ser bueno saber que Jsoup soportes XML también.


Actualizar : OK, que se le dio el downvote parecer una respuesta muy controvertido. Sin embargo, puede terminar siendo más fácil y menos detallado que el XPath cuando lo que quieres es seleccionar valores de nodo. El API Jsoup es decir, muy resbaladiza. Vamos a darle un poco ejemplo más concreto. Asumiendo que usted tiene un archivo XML que se parecen a esto:

<?xml version="1.0" encoding="UTF-8"?>
<persons>
    <person id="1">
        <name>John Doe</name>
        <age>30</age>
        <address>
            <street>Main street 1</street>
            <city>Los Angeles</city>
        </address>
    </person>
    <person id="2">
        <name>Jane Doe</name>
        <age>40</age>
        <address>
            <street>Park Avenue 1</street>
            <city>New York</city>
        </address>
    </person>
</persons>

A continuación, puede atravesarlo como sigue:

Document document = Jsoup.parse(new File("/persons.xml"), "UTF-8");

Element person2 = document.select("person[id=2]").first();
System.out.println(person2.select("name").text());

Elements streets = document.select("street");
for (Element street : streets) {
    System.out.println(street.text());
}

que salidas

Jane Doe
Main street 1
Park Avenue 1

Actualización 2 . Jsoup desde que fue lanzado 1.6.2 Marzo de 2012, el análisis de XML está soportado oficialmente por la API Jsoup

scroll top