javaEE学习总结(1)

JDom 和 Dom4J两种对xml文件的解析和创建方法的比较

(虽然也有jaxp机制,但是考虑到此机制过于繁琐,尤其是在取值的时候,在

这里就不于讨论了了)

这两种方式在处理之前都需要引入jar包

首先是解析文件:
1.得到Document对象的方式
JDom方式:用jar包中的SAXBuilder对象的builder方法得到

SAXBuilder saxb = new SAXBuilder()    Document d =

saxb.builder(new File("路径"))
Dom4J方式:用jar包中的SAXReader对象的read方法得到
SAXReader sr = new SAXReader(); Document d = sr.read(new File("路径

"))
2.得到根节点的方式
这两种机制都采用了同一种方法来得到根节点
Element root = d.getRootElement();返回的是一个Element元素
3.得到孩子结点的方式
JDom方式:root.getChildren("节点名字")返回的是一个普通的list

类型
Dom4J方式:root.elementIterator("节点名字")返回的直接是一个

集合的迭代器 Iterator
4.得到属性值
JDom方式:元素节点的getAttributeValue("属性名字")
Dom4J方式:元素节点的attributeValue("属性名字")
5.得到文本内容的方式
JDom方式:元素节点的getChildText("节点名字")***或者可以拆分

为 元素节点.getChild().getValue()
Dom4J方式:元素节点的elementText("节点名字")***或者可以拆分

为 元素节点.element().getText("节点名字")


创建xml文件(解析的逆过程)
1.得到Document的方式:
JDom方式:直接new Docuemnt()***捣包
Dom4J方式:DocumentHelper.createDocument()**通过直接调

用DocuemntHelper对象里面的静态方法createDocuemnt()来得到
2.创建节点的方式
JDom方式:也是直接new出各种节点Element student = new

Element("学生");
Dom4J方式:在创建出各个节点的同时也指定了关联关系Element

student = root.addElement("学生")   Element name =

student.addElement("姓名")...
3.指定属性或者内容文本
都是通过setText()方式来给元素赋值;属性的赋值方法JDom方式是

通过setAttrubute(“key”,“value”),Dom4j是通过setAttributevalue(

“key”,“value”)
4.给各个元素节点指定继承关系
JDom方式: d.addContent(root); root.addContent(student);

student.addContent(name)...
由于Dom4J在建立节点的时候已经指定了继承关系,所以此处不用制

定了
5.导出xml文件
Jdom方式:使用是XMLOutputter对象(直接new出来的),并调用该对象

的output(document,outputStream)方法,两个参数,其中的outputStream参

数一般是用FileOutputStream("文件路径");
Dom4J方式:使用的是XMLWriter 对象(也是直接new出来的),构造方

法中用到了文件输出流,直接指定输出位置 XMLWriter xmlw = new

XMLWriter(new FileOutputStream("文件路径")),最后调

用xmlw.write(document)方法来输出
6.输出文件格式的指定
Jdom方式 使用的是引入jar包中的Format对象来实现的,
Format f = Format.getPrettyFormat(); f.setEncoding("GBK");

f.setIndent("   ")***指定的是缩进格式,最后加载格式

xmlw.setFormat(f)
dom4J方式:
OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式
OutputFormat format=OutputFormat.createCompactFormat();//紧凑型格式
在new XMLWriter的时候指定格式
XMLWriter xmlw = new XMLWriter(format);


****最后都别忘记流的关闭

                                                  2009-10-25*中软301java就业班















你可能感兴趣的:(xml,javaee,F#)