dom4j  解析  这个还是比较有规律的  只不过东西多了点 

解决方案 »

  1.   

    我现在就在看dom4j这个我看这个是比较多,但是好像这个用起来很方便啊呵呵,你们最好给出我代码 哈哈那我就太感谢了 ,或者给我一个非常详细的教程也行
      

  2.   

    呵呵 ,抽空给你搞了一下应该没有问题了import java.io.FileNotFoundException;
    import java.io.IOException;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import org.xml.sax.SAXException;
    import java.util.*;public class Xml {
      public static void main(String[] args) {
        try {
          Xml xml = new Xml();
          xml.parserXml("d:/1.xml");
        }
        catch (Exception e) {
          e.printStackTrace();
        }
      }  public void parserXml(String fileName) {
        try {
          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
          DocumentBuilder db = dbf.newDocumentBuilder();
          Document document = db.parse(fileName);
          NodeList employees = document.getChildNodes();
          List returnList = new ArrayList();
          for (int i = 0; i < employees.getLength(); i++) {
            Node employee = employees.item(i);
            NodeList employeeInfo = employee.getChildNodes();
            System.out.println(employee.getNodeName());
            for (int j = 0; j < employeeInfo.getLength(); j++) {
              Map map = null;
              Node node = employeeInfo.item(j);
              if (node.getNodeType() == Node.ELEMENT_NODE) {
                map = new HashMap();
                Element entry = (Element) node;
                map.put("NodeName", node.getNodeName());
                map.put("CategoryCode", entry.getAttribute("CategoryCode"));
                map.put("CategoryName", entry.getAttribute("CategoryName"));
                NodeList employeeMeta = node.getChildNodes();
                List list = new ArrayList();
                for (int k = 0; k < employeeMeta.getLength(); k++) {
                  Node nodek = employeeMeta.item(k);
                  Map tmpmap = null;
                  if (nodek.getNodeType() == Node.ELEMENT_NODE) {
                    tmpmap = new HashMap();
                    Element entry1 = (Element) nodek;
                    tmpmap.put("NodeName", nodek.getNodeName());
                    tmpmap.put("RegionID", entry1.getAttribute("RegionID"));
                    tmpmap.put("RegionName", entry1.getAttribute("RegionName"));
                    tmpmap.put("RegionValue", entry1.getAttribute("RegionValue"));
                    tmpmap.put("List_Order", entry1.getAttribute("List_Order"));
                    list.add(tmpmap);
                  }
                }
                if (map != null) {
                  map.put("list", list);
                  returnList.add(map);
                }
              }
            }
          }
          for (int i = 0; i < returnList.size(); i++) {
            Map map = (HashMap) returnList.get(i);
            List list = (ArrayList) map.get("list");
            System.out.println("........................................................................");
            System.out.println("父节点===========================" +map.get("NodeName"));
            System.out.println("CategoryCode====================" +map.get("CategoryCode"));
            System.out.println("CategoryName====================" +map.get("CategoryName"));
            for (int j = 0; j < list.size(); j++) {
              Map map1 = (HashMap) list.get(j);
              System.out.println("-----------------------------------------------------------------------");
              System.out.println("子节点" + (j+1) + "===" +map1.get("NodeName"));
              System.out.println("RegionID ===" +map1.get("RegionID"));
              System.out.println("RegionName ===" +map1.get("RegionName"));
              System.out.println("RegionValue ===" + map1.get("RegionValue"));
              System.out.println("List_Order ===" +   map1.get("List_Order"));
            }
          }      System.out.println("解析完毕");
        }
        catch (FileNotFoundException e) {
          System.out.println("1===========" + e.getMessage());
        }
        catch (ParserConfigurationException e) {
          System.out.println("2===========" + e.getMessage());
        }
        catch (SAXException e) {
          System.out.println("3===========" + e.getMessage());
        }
        catch (IOException e) {
          System.out.println("4===========" + e.getMessage());
        }  }
    }
      

  3.   

    谢谢你抽空给我写这段代码,我自己已经研究完了dom4j  呵呵 确实比较好用啊。