I have the following XML code in a string what I want to do is a parse to print the information but I have not been able to with the following .jar xerces, jdom and jaxp does anyone know of another? or what versions of these might work all throw me error.
<?xml version = "1.0" encoding= "UTF-8"?>
<!DOCTYPE list
><list>
<ListaMaterias>
<codigoMateria>3525</codigoMateria>
<descMateria>Aprender Biologia</descMateria>
<id>1</id>
<nombreMateria>Biologia</nombreMateria>
</ListaMaterias>
<ListaMaterias>
<codigoMateria>3678</codigoMateria>
<descMateria>Aprender Quimica</descMateria>
<id>2</id>
<nombreMateria>Quimica</nombreMateria>
</ListaMaterias>
</list>
I'm trying with JDOM but when I want to print it prints me blank. It does not print anything just 3 blank spaces.
public static void main(String[] args) throws IOException {
List resultado = null;
resultado = new ArrayList<>();
resultado = listarDatos();
XStream xstream = new XStream();
String xml = xstream.toXML(resultado);
String adicionar = "<?xml version = \"1.0\" encoding= \"UTF-8\"?> \n";
String doctype = "<!DOCTYPE list \n>";
String xml_m = adicionar + doctype + xml.replace("<newwebservicematerias.Materia>", "<ListaMaterias>").replace("</newwebservicematerias.Materia>", "</ListaMaterias>");
//System.out.println(xml_m);
org.jdom.input.SAXBuilder saxBuilder = new SAXBuilder();
try {
org.jdom.Document doc = saxBuilder.build(new StringReader(xml_m));
String message = doc.getRootElement().getText();
System.out.println(message);
} catch (JDOMException e) {
// handle JDOMException
} catch (IOException e) {
// handle IOException
}
}
and tried with
org.jdom.input.SAXBuilder saxBuilder = new SAXBuilder();
try {
org.jdom.Document doc = saxBuilder.build(new StringReader(xml_m));
List cadena = doc.getContent();
for (Object iterator : cadena) {
System.out.println(iterator);
}
} catch (JDOMException e) {
// handle JDOMException
} catch (IOException e) {
// handle IOException
}
but the only thing that prints is:
[DocType: <!DOCTYPE list>]
[Element: <list/>]