初学啥都不大懂, DOM 方式XML 文件解析,String数组总没有值。。。求教,谢谢
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<string>直辖市 上海</string>
<string>上海</string>
<string>2013</string>
,,,
- Java code
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document dom = builder.parse(inStream); Element root = dom.getDocumentElement(); NodeList items = root.getElementsByTagName("string"); for (int i = 0; i < items.getLength(); i++) { Element element = (Element) items.item(i); s[i] = element.getFirstChild().getNodeValue(); }
------解决方案--------------------
xml文件都是需要root节点的:
- Java code
// File file = new File("d:\\WordChronos.xml");// DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();// DocumentBuilder docbuder;// try {// docbuder = dbf.newDocumentBuilder();// Document doc = docbuder.parse(file);// NodeList nl = doc.getElementsByTagName("Set");// for(int i = 0;i < nl.getLength();i ++){// String s1 = doc.getElementsByTagName("Time1").item(0).getFirstChild().getNodeValue();// String s2 = doc.getElementsByTagName("Time2").item(0).getFirstChild().getNodeValue();// String s3 = doc.getElementsByTagName("Time3").item(0).getFirstChild().getNodeValue();// String s4 = doc.getElementsByTagName("Music1").item(0).getFirstChild().getNodeValue();// String s5 = doc.getElementsByTagName("Music2").item(0).getFirstChild().getNodeValue();// String s6 = doc.getElementsByTagName("Music3").item(0).getFirstChild().getNodeValue();// String s7 = doc.getElementsByTagName("state1").item(0).getFirstChild().getNodeValue();// String s8 = doc.getElementsByTagName("state2").item(0).getFirstChild().getNodeValue();// String s9 = doc.getElementsByTagName("state3").item(0).getFirstChild().getNodeValue();// String s10 = doc.getElementsByTagName("Book").item(0).getFirstChild().getNodeValue();// String s11 = doc.getElementsByTagName("Group").item(0).getFirstChild().getNodeValue();// String s12 = doc.getElementsByTagName("type").item(0).getFirstChild().getNodeValue();// String s13 = doc.getElementsByTagName("Ptime").item(0).getFirstChild().getNodeValue();// String s14 = doc.getElementsByTagName("Ntime").item(0).getFirstChild().getNodeValue();// System.out.println(s1 + ";" + s2 + ";" + s3 + ";" + s4);// }// } catch (ParserConfigurationException e) {// e.printStackTrace();// } catch (SAXException e) {// e.printStackTrace();// } catch (IOException e) {// e.printStackTrace();// }