我邮箱是:920957807@qq.com
希望详解,我能读取第一层节点,但是节点里面的节点就不会了,
其中<product>节点任意多个 ,但是小于等于10个
<?xml version="1.0" encoding="UTF-8"?>
<RequestStocksInfo>
<MemberNO>null</MemberNO>
<WareHouseCode>CK-0001</WareHouseCode>
<SyncId>ffffffff</SyncId>
<Remark>987654321</Remark>
<products>
<product>
<name>fffffff</name>
<spuCode>ffsdf</spuCode>
<units>sfs</units>
<model>faf</model>
<Specification>af</Specification>
<status>afasfaf</status>
</product>
<product>
<name>sfs</name>
<spuCode>fsf</spuCode>
<units>safasf</units>
<model>afaf</model>
<Specification>af</Specification>
<status>afa</status>
</product>
</products>
</RequestStocksInfo>
------解决方案--------------------
- Java code
public class DOMParseXML { public void scanXML(File thefile) { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = null; Document doc = null; try { db = dbf.newDocumentBuilder(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { doc = db.parse(thefile); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Element root = doc.getDocumentElement(); echoNode(root); } private void echoNode(Node node) { switch (node.getNodeType()) { case Node.ELEMENT_NODE: System.out.println("This is an element: "); System.out.println("Name: " + node.getNodeName() + "/n"); if (node.hasChildNodes()) { NodeList nlist = node.getChildNodes(); for (int i = 0; i < nlist.getLength(); i++) { echoNode(nlist.item(i)); } } if (node.hasAttributes()) { NamedNodeMap namedNodeMap = node.getAttributes(); for (int i = 0; i < namedNodeMap.getLength(); i++) { echoNode(namedNodeMap.item(i)); } } break; case Node.ATTRIBUTE_NODE: System.out.println("This is an attribute: "); System.out.println("Name :" + node.getNodeName()); System.out.println("Value :" + node.getNodeValue() + "/n"); break; case Node.TEXT_NODE: System.out.println("This is a text: "); System.out.println("Content: /" " + node.getNodeValue() + "/"/n"); break; default: System.out.println("### Node type: " + node.getNodeType() + "###"); System.out.println("Name: " + node.getNodeName()); System.out.println("Value: " + node.getNodeValue()); break; } } public static void main(String[] args) { DOMParseXML test = new DOMParseXML(); test.scanXML(new File("F://1.xml")); }}