读书人

dom4j 读xml灰躲有用的jar包

发布时间: 2013-11-08 17:51:58 作者: rapoo

dom4j 读xml灰藏有用的jar包
//1.创—ocument对象Document doc = DocumentHelper.createDocument();//2.创建元素 并组装//addElement 添加子元素Element root = doc.addElement("emps");Element first = root.addElement("emp");Element name = first.addElement("name");name.setText("etoak");Element sal = first.addElement("sal");sal.setText("1234");

效果就是

<emps>

? ? <emp>

? ? ? ? <name>etoak</name>

? ? ? ? <sal>1234</sal>

</emp>

</emps>

?

?这其实是写在内存里,ajax里是用这内存里的xml传递数据到js以便解析数据.

也可?以写出到本地目录

OutputStream fos = new FileOutputStream("emp.xml");XMLWriter writer = new XMLWriter(fos,OutputFormat.createPrettyPrint());writer.write(doc);writer.close();

其中?OutputFormat.createPrettyPrint() 是设置书写格式,默认的格式如果打开看的话,很难看,写上这个,样子就跟我上面举例的一样了.

2使用DO?M4J遍历XML文档

import org.dom4j.*;import org.dom4j.io.*;import java.io.*;import java.util.*;//使用DOM4J遍历XML文档public class Read{public static void main(String args[])throws Exception{//1.获得解析器SAXReader reader = new SAXReader();//2.解析文档返回Document`Document doc = reader.read(new File("student.xml"));//3.获得根元素Element root = doc.getRootElement();//4.打印名字System.out.println("根元素是:"+root.getName());//5.获得一级子元素List<Element> firsts = root.elements();for(Element first:firsts){String fName  = first.getName();System.out.println("一级子元素的名字:"+fName);//6.得到一级子元素的属性List<Attribute> attrs = first.attributes();for(Attribute att:attrs){String att_name = att.getName();String att_value = att.getValue();System.out.println("属性名字:"+att_name+",内容是:"+att_value);}List<Element> secs = first.elements();for(Element sec:secs){String secName = sec.getName();String secText = sec.getText();System.out.println("二级子元素是:"+secName+",内容是:"+secText);}}}}

还有一种遍历方法.根据需求.这个可以直接拿某元素的子元素对应的text值

import org.dom4j.*;import org.dom4j.io.*;import java.io.*;import java.util.*;public class Read1{public static void main(String arg[])throws Exception{SAXReader reader = new SAXReader();Document doc = reader.read(new File("student.xml"));Element root = doc.getRootElement();System.out.println("root is :"+root.getName());//得到所有的student节点下的元素List<Element> firsts = root.elements("student");for(Element first:firsts){//得到该元素的属性String v_id = first.attributeValue("id");System.out.println("id是:"+v_id);//获得二级子元素的值 也就是<>value</>value对应的地方String name = first.elementTextTrim("name");String age = first.elementTextTrim("age");String email = first.elementTextTrim("email");System.out.println("name is :"+name);System.out.println("age  is :"+age);System.out.println("email is :"+email);}}}

?

读书人网 >XML SOAP

热点推荐