XML解析

来源:互联网 发布:大学生体育锻炼数据 编辑:程序博客网 时间:2024/06/14 03:47

domcument解析

public class DomDemo implements XmlDocument {    //文档树    private Document document;    //文件路径    private String fileName;    /*      * 该初始化方法用来获得解析器     */    public void init() {        try {            //先得到解析器工厂的实例            DocumentBuilderFactory factory = DocumentBuilderFactory                    .newInstance();            //取得到解析器            DocumentBuilder builder = factory.newDocumentBuilder();            //通过解析器来得到一个文档对象            this.document = builder.newDocument();        } catch (ParserConfigurationException e) {            System.out.println(e.getMessage());        }    }    @Override    public void createXml(String fileName) {        //创建根节点        Element root = this.document.createElement("employees");        //把根节点加到文档树上去        this.document.appendChild(root);        //创建了一个<employee>节点        Element employee = this.document.createElement("employee");        //创建name节点        Element name = this.document.createElement("name");        //给name节点里面里面添加文本节点        name.appendChild(this.document.createTextNode("丁宏亮"));        //将name节点加到employee节点中去        employee.appendChild(name);        Element sex = this.document.createElement("sex");        sex.appendChild(this.document.createTextNode("m"));        employee.appendChild(sex);        Element age = this.document.createElement("age");        age.appendChild(this.document.createTextNode("30"));        employee.appendChild(age);        //将创建好的employ节点加到跟节点里面去        root.appendChild(employee);        //得到TransformerFactory工厂        TransformerFactory tf = TransformerFactory.newInstance();        try {            //通过TransformerFactory工厂得到Transformer对象            Transformer transformer = tf.newTransformer();            //将documengt对象转换成dom源            DOMSource source = new DOMSource(document);            transformer.setOutputProperty(OutputKeys.ENCODING, "gb2312");            transformer.setOutputProperty(OutputKeys.INDENT, "yes");            PrintWriter pw = new PrintWriter(new FileOutputStream(fileName));            StreamResult result = new StreamResult(pw);            StreamResult consol=new StreamResult(System.out);            transformer.transform(source, result);            transformer.transform(source, consol);            System.out.println("生成XML文件成功!");        } catch (TransformerConfigurationException e) {            System.out.println(e.getMessage());        } catch (IllegalArgumentException e) {            System.out.println(e.getMessage());        } catch (FileNotFoundException e) {            System.out.println(e.getMessage());        } catch (TransformerException e) {            System.out.println(e.getMessage());        }    }    @Override    public void parserXml(String fileName) {        try {            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();            DocumentBuilder db = dbf.newDocumentBuilder();            Document document = db.parse(fileName);            NodeList employees = document.getChildNodes();            for (int i = 0; i < employees.getLength(); i++) {                Node employee = employees.item(i);                NodeList employeeInfo = employee.getChildNodes();                for (int j = 0; j < employeeInfo.getLength(); j++) {                    Node node = employeeInfo.item(j);                    NodeList employeeMeta = node.getChildNodes();                    for (int k = 0; k < employeeMeta.getLength(); k++) {                        System.out.println(employeeMeta.item(k).getNodeName()                                + ":" + employeeMeta.item(k).getTextContent());                    }                }            }            System.out.println("解析完毕");        } catch (FileNotFoundException e) {            System.out.println(e.getMessage());        } catch (ParserConfigurationException e) {            System.out.println(e.getMessage());        } catch (SAXException e) {            System.out.println(e.getMessage());        } catch (IOException e) {            System.out.println(e.getMessage());        }    }
0 0
原创粉丝点击