Leer XML desde Java
Publicado por Vanessa (2 intervenciones) el 08/10/2010 02:30:40
Hola amigos.
Necesito que por favor me ayuden a como leer un XML desde Java.
Les cuento que yo lo he logrado parcialmente, tengo el siguiente XML super sencillo:
Code:
<nodo_raiz>
<nodo_hijo nombre_atributo="Probando">
</nodo_hijo>
</nodo_raiz>
Y tengo el siguiente codigo en Java con el cual he logrado leer el valor "Probando".
Code:
public void procesarXML(String string_xml) {
try {
factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
doc = builder.parse(new InputSource(new StringReader(string_xml)));//el xml lo pasamos como String
Node raiz = doc.getFirstChild();
recorrerXML(raiz.getChildNodes(), 0);
} catch (SAXException e) {
} catch (IOException e) {
} catch (ParserConfigurationException e) {
}
}
/*
*piso = 0 -> nodo padre
*piso = 1 -> nodo hijo
*piso = 2 -> nodo nieto
*piso = n -> asi sucesivamente
*/
private void recorrerXML(NodeList lst, int piso) {
if (lst != null) {
for (int i = 0; i < lst.getLength(); i++) {
obtenerDatos(lst.item(i), piso);
addMessage(lst.item(i).getNodeName());
}
}
}
private void obtenerDatos(Node n, int piso) {
NamedNodeMap atributos = n.getAttributes();
Node aux = atributos.getNamedItem("nombre_atributo");
System.out.println(aux.getNodeName());
}
Hasta aqui todo bien, el problema lo tengo cuando tengo que leer el siguiente XML:
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rif:Rif xmlns:rif="rif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" rif:numeroRif="V101234567">
<rif:Nombre>JUAN CARLOS LOPEZ LOPEZ</rif:Nombre>
<rif:AgenteRetencionIVA>NO</rif:AgenteRetencionIVA>
<rif:ContribuyenteIVA>SI</rif:ContribuyenteIVA>
<rif:Tasa />
</rif:Rif>
Cuando trato de leer este archivo XML con el codigo java que les coloque, no puedo leer el valor de los nodos, puedo leer el nombre pero no el valor, siempre devuelve null. Si se fijan este ultimo XML es un poco mas "extraño" que el primero que les mande, al menos para mi.
Les agradeceria mucho su ayuda para poder leer este archivo XML.
Desde ya muchas gracias.
Necesito que por favor me ayuden a como leer un XML desde Java.
Les cuento que yo lo he logrado parcialmente, tengo el siguiente XML super sencillo:
Code:
<nodo_raiz>
<nodo_hijo nombre_atributo="Probando">
</nodo_hijo>
</nodo_raiz>
Y tengo el siguiente codigo en Java con el cual he logrado leer el valor "Probando".
Code:
public void procesarXML(String string_xml) {
try {
factory = DocumentBuilderFactory.newInstance();
builder = factory.newDocumentBuilder();
doc = builder.parse(new InputSource(new StringReader(string_xml)));//el xml lo pasamos como String
Node raiz = doc.getFirstChild();
recorrerXML(raiz.getChildNodes(), 0);
} catch (SAXException e) {
} catch (IOException e) {
} catch (ParserConfigurationException e) {
}
}
/*
*piso = 0 -> nodo padre
*piso = 1 -> nodo hijo
*piso = 2 -> nodo nieto
*piso = n -> asi sucesivamente
*/
private void recorrerXML(NodeList lst, int piso) {
if (lst != null) {
for (int i = 0; i < lst.getLength(); i++) {
obtenerDatos(lst.item(i), piso);
addMessage(lst.item(i).getNodeName());
}
}
}
private void obtenerDatos(Node n, int piso) {
NamedNodeMap atributos = n.getAttributes();
Node aux = atributos.getNamedItem("nombre_atributo");
System.out.println(aux.getNodeName());
}
Hasta aqui todo bien, el problema lo tengo cuando tengo que leer el siguiente XML:
Code:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<rif:Rif xmlns:rif="rif" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" rif:numeroRif="V101234567">
<rif:Nombre>JUAN CARLOS LOPEZ LOPEZ</rif:Nombre>
<rif:AgenteRetencionIVA>NO</rif:AgenteRetencionIVA>
<rif:ContribuyenteIVA>SI</rif:ContribuyenteIVA>
<rif:Tasa />
</rif:Rif>
Cuando trato de leer este archivo XML con el codigo java que les coloque, no puedo leer el valor de los nodos, puedo leer el nombre pero no el valor, siempre devuelve null. Si se fijan este ultimo XML es un poco mas "extraño" que el primero que les mande, al menos para mi.
Les agradeceria mucho su ayuda para poder leer este archivo XML.
Desde ya muchas gracias.
Valora esta pregunta
0