Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Leer XML desde web, y con varios niveles

Hola a todos os explico lo que estoy desarrollando una aplicación que lee un documento xml alojado en una web y muestra por pantalla lo leido.

La cuestión es que leo el xml de la web: http://www.ticomusica.es/api/xml/familias/

y el problema que tengo es que a la vez que leo esa pagina tengo ver la diferentes id_categorias que tiene y mostrarlas por ejemplo tendria que leer la web http://www.ticomusica.es/api/xml/familias/247 la http://www.ticomusica.es/api/xml/familias/280 y asi hasta completar todas las id_categorias y mostraslas todas juntas junto con la web raiz.

Es es el código de la primera parte que lee y muestra por pantalla la web http://www.ticomusica.es/api/xml/familias/. Me faltaría todo lo demás. GRACIAS:


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.net.URL;
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;
import org.xml.sax.InputSource;
public class LeerXml {
public static void main(String argv[]) {
try {
URL url=
new URL(“http://www.ticomusica.es/api/xml/familias”);
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream()));
String entrada;
String cadena=”";
while ((entrada = br.readLine()) != null){
cadena = cadena + entrada;
}
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
InputSource archivo = new InputSource();
archivo.setCharacterStream(new StringReader(cadena));
Document documento = db.parse(archivo);
documento.getDocumentElement().normalize();
NodeList nodeLista = documento.getElementsByTagName(“item”);
System.out.println(“Informacion del Stock”);
for (int s = 0; s < nodeLista.getLength(); s++) {
Node primerNodo = nodeLista.item(s);
String id_categoria;
String categoria;
if (primerNodo.getNodeType() == Node.ELEMENT_NODE) {
Element primerElemento = (Element) primerNodo;
NodeList primerNombreElementoLista =
primerElemento.getElementsByTagName("id_categoria");
Element primerNombreElemento =
(Element) primerNombreElementoLista.item(0);
NodeList primerNombre = primerNombreElemento.getChildNodes();
id_categoria = ((Node) primerNombre.item(0)).getNodeValue().toString();
System.out.println("id_categoria : " + id_categoria);
NodeList segundoNombreElementoLista =
primerElemento.getElementsByTagName("categoria");
Element segundoNombreElemento =
(Element) segundoNombreElementoLista.item(0);
NodeList segundoNombre = segundoNombreElemento.getChildNodes();
categoria = ((Node) segundoNombre.item(0)).getNodeValue().toString();
System.out.println("Categoria : " + categoria);
}
}
}
catch (Exception e) {
e.printStackTrace();
}
}
}

enero 15, 2014 | Unregistered CommenterFirgon