当前位置: 代码迷 >> Java Web开发 >> java 解析 xml文件, 多层节点读取,请高手帮忙啊 !小弟我要解析的XML已经在下面
  详细解决方案

java 解析 xml文件, 多层节点读取,请高手帮忙啊 !小弟我要解析的XML已经在下面

热度:695   发布时间:2016-04-17 17:21:58.0
java 解析 xml文件, 多层节点读取,请高手帮忙啊 !我要解析的XML已经在下面
我邮箱是: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")); }}
  相关解决方案