我试图解析使用DOM的XML文件。 但我从节点获取NULL值,即使,你可以在XML文件中看到,它们都具有价值......我一直在努力了一段时间,但无法找到解决这个问题。 我是相当新手Java编程,所以它可能是一个新手的错误,但现在,我十分沮丧......
这是我正在解析XML:
<root>
<seguro>
<seg_tipo>cocacola</seg_tipo>
<seg_subtipo>cocacola</seg_subtipo>
<seg_title>cocacola</seg_title>
<seg_descr>cocacola</seg_descr>
<seg_carac_title>cocacola</seg_carac_title>
<seg_carac>cocacola</seg_carac>
</seguro>
<seguro>
<seg_tipo>fantanaranja</seg_tipo>
<seg_subtipo>fantanaranja</seg_subtipo>
<seg_title>fantanaranja</seg_title>
<seg_descr>fantanaranja</seg_descr>
<seg_carac_title>fantanaranja</seg_carac_title>
<seg_carac>fantanaranja</seg_carac>
</seguro>
</root>
我给自己定了一些的System.out.println()来告诉我该节点的值的名称,这是我得到:
seg_tipo -- null
seg_subtipo -- null
seg_title -- null
seg_descr -- null
seg_carac_title -- null
seg_carac -- null
/n-------------------------------------/n
seg_tipo -- null
seg_subtipo -- null
seg_title -- null
seg_descr -- null
seg_carac_title -- null
seg_carac -- null
/n-------------------------------------/n
我无法得到它的工作......这是他解析XML中的代码:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
File fileXML = new File("seguros.xml");
Document document = builder.parse(fileXML);
Element root = document.getDocumentElement();
NodeList items = root.getElementsByTagName("seguro");
// System.out.println(items.getLength());
// System.out.println(items.item(1).getNodeName());
for (int i = 0; i < items.getLength(); i++) {
Seguro seguroActual = new Seguro();
Node item = items.item(i);
NodeList datosSeguro = item.getChildNodes();
for (int j = 0; j < datosSeguro.getLength(); j++) {
// System.out.println(datosSeguro.getLength());
Node dato = datosSeguro.item(j);
String etiqueta = dato.getNodeName();
System.out.println(dato.getNodeName()+" -- "+dato.getNodeValue());
if (etiqueta.equals("seg_tipo")) {
seguroActual.setSeg_tipo(dato.getNodeValue());
// System.out.println("El tipo del seguro es: " + dato.getNodeValue());
} else if (etiqueta.equals("seg_subtipo")) {
seguroActual.setSeg_subtipo(dato.getNodeValue());
// System.out.println("El subtipo del seguro es: " + seguroActual.getSeg_subtipo());
}
}
System.out.println("/n-------------------------------------/n");
AlmacenSeguros.getInstance().guardarSeguro(seguroActual);
}
这可能是一个非常简单的问题,但无法找到答案... :(在此先感谢!