首页 > 学院 > 开发设计 > 正文

Xml解析

2019-11-14 14:55:34
字体:
来源:转载
供稿:网友

dom4j解析xml

    public static void main(String[] args) {        ReaderMyXml reader = new ReaderMyXml();        HashMap<String, String> hm = new HashMap<String, String>();        String n = System.getPRoperty("user.dir");// 获取当前工程真实路径        // System.out.println(n);        String path = n + "//src//students.xml";        // System.out.println(path);        reader.toReaderXml(path, hm);        System.out.println(hm.size());        System.out.println("--------------------------------------------");        System.out.println("姓名/t年龄/t性别/t电话");        /*         * for (int i = 0; i < hm.size()/4-1;i++ ) {         * System.out.print(hm.get("stuname:"+(i+1))+"/t");         * System.out.print(hm.get("stuage:"+(i+1))+"/t");         * System.out.print(hm.get("sex:"+(i+1))+"/t");         * System.out.print(hm.get("phone:"+(i+1))+"/t"); System.out.println();         * }         */        for (int i = 0; i < hm.size(); i += 5) {            int its = i / 5 + 1;            System.out.print(hm.get("stuname:" + (its)) + "/t");            System.out.print(hm.get("stuage:" + (its)) + "/t");            System.out.print(hm.get("sex:" + (its)) + "/t");            System.out.print(hm.get("phone:" + (its)) + "/t");            System.out.println();        }        System.out.println("--------------------------------------------");    }}
package org.cn.com;import java.io.File;import java.util.HashMap;import java.util.Iterator;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentException;import org.dom4j.Element;import org.dom4j.io.SAXReader;/** * 遍历整个XML文件,获取所有节点的值与其属性的值,并放入HashMap中 * @param filename String 待遍历的XML文件(相对路径或者绝对路径) * @param hm HashMap 存放遍历结果 */public class ReaderMyXml {    /**     * 使用Dom4j读取XML文件     * @param fileName 文件的全名称(路径+名称)     * @param hm 哈希集合,用于存放XML读取到的信息     */    @SuppressWarnings("unchecked")    public void toReaderXml(String fileName,HashMap<String, String> hm){        //创建Dom4J的一个对象        SAXReader saxReader=new SAXReader();        //创建File类,xml是一个文件,所以要得到这个文件        File xmlFile=new File(fileName);                int num=0;        try {            //装载到Dom4J中            Document document=saxReader.read(xmlFile);            //获取xml的根节点,对我我们当前的XML文件,跟节点是:students            Element root=document.getRootElement();            //获取到根节点之后就可以根据根节点获取其下所有的子节点            for (Iterator<Element> itera=root.elementIterator();itera.hasNext();) {                //读取二级节点                Element secondNode=itera.next();                num++;                Attribute idAttr=secondNode.attribute("id");                if (idAttr!=null) {                    hm.put(idAttr.getName()+":"+num, idAttr.getValue());                }                //System.out.println(idAttr.getName()+"、"+num+":" +idAttr.getValue());                                for (Iterator<Element> iteraInner=secondNode.elementIterator();iteraInner.hasNext();) {                    //读取三级节点                    Element thirdNode=iteraInner.next();                    //System.out.println(thirdNode.getText());                    hm.put(thirdNode.getName()+":"+num, thirdNode.getText());                }                //System.out.println("-----------------------------------------");            }        } catch (DocumentException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }            }    }

执行结果


35
--------------------------------------------
姓名 年龄 性别 电话
孙悟空 26 男 15989562589
牛魔王 28 男 13956892578
猪悟能 27 男 13856230589
嫦娥 22 女 18956877852
铁扇公主 23 女 15802563215
白骨精 23 女 13756983698
女儿国王 21 女 18256892306
--------------------------------------------

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表