dom解析xml字符串

xmlstr=23002403010斜土路1nullnull0030101300240RZRQ信用业务部0nullnull00rzrq4300240信用交易部null0nullnull10xyjyb33002403020武宁路1nullnull1030205300240102莲前西营业部0nullnull201026300240国海测试部门01描述文本0nullnull3nullnull

/解析xmlstring字符串

    public static List parseXml(String xmlstr){
        List dataList=new ArrayList();
        //1解析器 工厂 类
        DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
        try
        {
            //通过 解析器工厂创建 一个 解析 器
            DocumentBuilder db=dbf.newDocumentBuilder();
            //解析xml文件
            //  Document dm=db.parse("f://person.xml");
            //解析xml字符串
            //将该字符串转为InputStream流
            InputStream iStream=new ByteArrayInputStream(xmlstr.getBytes());
            Document dm=db.parse(iStream);
            //得到 所有 department节点
            NodeList departments=dm.getElementsByTagName("department");
            for(int i=0;i                 Map dataMap=new HashMap();
                //element 和 node 是 同一 概念
                //不同 的 是 element 提供 更多 方法
                Element departElement = (Element)departments.item(i);
                //部门ID
                String departmentId=departElement.getElementsByTagName("departmentId")//部门ID
                        .item(0).getFirstChild().getNodeValue();
                //部门名称
                String departmentName=departElement.getElementsByTagName("departmentName")//部门名称
                        .item(0).getFirstChild().getNodeValue();
                dataMap.put("departmentId", departmentId);
                dataMap.put("departmentName", departmentName);
                dataList.add(dataMap);
            }
        }
        catch (ParserConfigurationException e)
        {
            e.printStackTrace();
        }
        catch (SAXException e)
        {
            e.printStackTrace();
        }
        catch (IOException e)
        {
            e.printStackTrace();
        }
        return dataList;
    }

你可能感兴趣的:(工作笔记)