首页 > 代码库 > dom4j解析XML文件(4)—实战
dom4j解析XML文件(4)—实战
任务目标
服务器:1.服务器将List对象存入XML文件中,XML文件名为emp5.xml
2.服务器读取XML文件,将文件发送给客户端
客户端:1.客户端接受服务器发送的XML文件,将文件存入磁盘
2.读取存入的XML文件,解析,然后转为List对象,在控制台打印输出
Emp.java
1 package XMLServiceAndClient; 2 3 public class Emp { 4 private int id; 5 private String name; 6 private int age; 7 private double salary; 8 public int getId() { 9 return id;10 }11 public void setId(int id) {12 this.id = id;13 }14 public String getName() {15 return name;16 }17 public void setName(String name) {18 this.name = name;19 }20 public int getAge() {21 return age;22 }23 public void setAge(int age) {24 this.age = age;25 }26 public double getSalary() {27 return salary;28 }29 public void setSalary(double salary) {30 this.salary = salary;31 }32 @Override33 public String toString() {34 return "Emp [id=" + id + ", name=" + name + ", age=" + age35 + ", salary=" + salary + "]";36 }37 public Emp() {38 }39 public Emp(int id, String name, int age, double salary) {40 super();41 this.id = id;42 this.name = name;43 this.age = age;44 this.salary = salary;45 }46 47 48 }
服务器:
1 package XMLServiceAndClient; 2 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 import java.io.OutputStream; 8 import java.net.ServerSocket; 9 import java.net.Socket;10 import java.util.ArrayList;11 import java.util.List;12 13 import org.dom4j.Document;14 import org.dom4j.DocumentHelper;15 import org.dom4j.Element;16 import org.dom4j.io.XMLWriter;17 18 /**19 *步骤: 1.服务器将List对象存入XML文件中,XML文件名为emp5.xml 20 * 2.服务器读取XML文件,将文件发送给客户端21 */22 public class Service {23 private ServerSocket ss;24 private int port = 8080;25 private List<Emp> list;26 /**利用构造函数初始化ServerSocket*/27 public Service(){28 try {29 ss = new ServerSocket(port);30 list = new ArrayList<Emp>();31 list.add(new Emp(1,"张三",20,2000));32 list.add(new Emp(2,"李四",30,4000));33 list.add(new Emp(3,"王五",40,6000));34 } catch (IOException e) {35 e.printStackTrace();36 }37 }38 /**服务器启动*/39 public void start(){40 try {41 Socket s = ss.accept();//等待客户端进入42 OutputStream os = s.getOutputStream();//获取输出流43 Document doc = DocumentHelper.createDocument();//获取document对象44 Element root = doc.addElement("list");45 for (Emp emp : list) {46 Element e = root.addElement("emp");47 e.addAttribute("id", ""+emp.getId());48 e.addElement("name").addText(emp.getName());49 e.addElement("age").addText(""+emp.getAge());50 e.addElement("salary").addText(""+emp.getSalary());51 }52 FileOutputStream fos = new FileOutputStream(new File("emp5.xml"));53 XMLWriter writer = new XMLWriter();54 writer.setOutputStream(fos);55 writer.write(doc);//将document输出到XML文件56 writer.close();57 fos.close();58 FileInputStream fis = new FileInputStream(new File("emp5.xml"));59 byte[] buf = new byte[1024];//设置缓冲区大小60 int size = -1;61 while((size=fis.read(buf))!=-1){62 os.write(buf, 0, size);63 }64 fis.close();65 s.close();66 } catch (IOException e) {67 e.printStackTrace();68 }69 }70 public static void main(String[] args) {71 Service s = new Service();72 s.start();73 }74 }
客户端:
1 package XMLServiceAndClient; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.InputStream; 6 import java.net.Socket; 7 import java.util.ArrayList; 8 import java.util.List; 9 10 import org.dom4j.Document;11 import org.dom4j.Element;12 import org.dom4j.io.SAXReader;13 14 15 /**16 *步骤: 1.客户端接受服务器发送的XML文件,将文件存入磁盘17 * 2.读取存入的XML文件,解析,然后转为List对象,在控制台打印输出 18 */19 public class Client {20 private Socket s;21 private int port = 8080;22 private List<Emp> list;23 24 public void start(){25 try {26 s = new Socket("localhost", port);27 InputStream is = s.getInputStream();28 FileOutputStream fos = new FileOutputStream(new File("emp6.xml"));29 byte[] buf = new byte[1024];//设置缓冲区大小30 int size = -1;31 while((size=is.read(buf))!=-1){32 fos.write(buf, 0, size);33 }34 fos.close();35 s.close();36 list = new ArrayList<Emp>();37 SAXReader reader = new SAXReader();38 Document doc = reader.read(new File("emp6.xml"));39 Element root = doc.getRootElement();40 List<Element> elements = root.elements();41 for (Element element : elements) {42 Emp emp = new Emp();43 emp.setId(Integer.parseInt(element.attribute("id").getValue()));44 emp.setName(element.element("name").getText());45 emp.setAge(Integer.parseInt(element.element("age").getText()));46 emp.setSalary(Double.parseDouble(element.element("salary").getText()));47 list.add(emp);48 }49 System.out.println(list);50 } catch (Exception e) {51 e.printStackTrace();52 }53 }54 55 public static void main(String[] args) {56 Client c = new Client();57 c.start();58 59 }60 }
dom4j解析XML文件(4)—实战
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。