您的位置:首页 > 编程语言 > Java开发

xml解析与将数据写到xml中

2015-05-26 16:14 302 查看
解析(也就是读取)xml

将数据写到xml中
Element类中,getName()获得标签,getText()获得值(也就是内容)
===========直接上代码了=============

解析xml(用的是Dom4j解析)
package com.xfonline;

import java.io.InputStream;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

class Address

{
private int zipCode;
private String desc;

public int getZipCode()
{
return zipCode;
}

public void setZipCode(int zipCode)
{
this.zipCode = zipCode;
}

public String getDesc()
{
return desc;
}

public void setDesc(String desc)
{
this.desc = desc;
}

}

class Student

{
private int stuNo;
private String stuName;
private int stuAge;
private Address address;

public int getStuNo()
{
return stuNo;
}

public void setStuNo(int stuNo)
{
this.stuNo = stuNo;
}

public String getStuName()
{
return stuName;
}

public void setStuName(String stuName)
{
this.stuName = stuName;
}

public int getStuAge()
{
return stuAge;
}

public void setStuAge(int stuAge)
{
this.stuAge = stuAge;
}

public Address getAddress()
{
return address;
}

public void setAddress(Address address)
{
this.address = address;
}

}

public class Demo

{
// 读取xml
public static void main(String args[]) throws Exception
{
Student stu=readStu();
System.out.println("======================");
}

public static Student readStu() throws Exception
{
Student stu = new Student();
// 1.获取SAXReader对象
SAXReader read = new SAXReader();
InputStream is = ClassLoader.getSystemResourceAsStream("student.xml");
// 2.生成doc对象
Document doc = read.read(is);
// 3.获取根节点 -student节点
Element root = doc.getRootElement();
// 4.获取子节点下面所有的儿子节点
List<Element> sons = root.elements();
// System.out.println(sons.size());
// 5.遍历所有的儿子
for (Element s : sons) {
if (s.getName().equals("stuNo")) {
stu.setStuNo(Integer.parseInt(s.getText()));
}
if (s.getName().equals("stuName")) {
stu.setStuName(s.getText());
}
if (s.getName().equals("stuAge")) {
stu.setStuAge(Integer.parseInt(s.getText()));
}
if (s.getName().equals("address")) {
// 继续遍历address的儿子
List<Element> addressson = s.elements();
Address ad = new Address();
for (Element t : addressson) {
if (t.getName().equals("zipCode")) {
ad.setZipCode(Integer.parseInt(t.getText()));
} else {
ad.setDesc(t.getText());
}
}
// 将Address设置给Student对象
stu.setAddress(ad);
}
}
return stu;
}

}

将数据写到xml中

package com.zrx;

import java.io.FileOutputStream;

import java.util.ArrayList;

import java.util.List;

import org.dom4j.Document;

import org.dom4j.DocumentHelper;

import org.dom4j.Element;

import org.dom4j.io.OutputFormat;

import org.dom4j.io.XMLWriter;

public class WriteDemo {

public static void main(String[] args) throws Exception {
Employee e1 = new Employee(1001, "科比", 1000);
Employee e2 = new Employee(1002, "姚明", 1000);
Employee e3 = new Employee(1003, "詹姆斯", 1000);
Employee e4 = new Employee(1004, "邓肯", 1000);
List<Employee> list = new ArrayList<Employee>();
list.add(e1);
list.add(e2);
list.add(e3);
list.add(e4);
write(list);

}

public static void write(List<Employee> list) throws Exception {
// 创建doc对象
Document doc = DocumentHelper.createDocument();
// 加一个root(根节点)
Element root = doc.addElement("company");
// 添加根节点属性
root.addAttribute("name", "xfonline");
root.addAttribute("id", "xf_00001");

// 遍历。需要在根节点上面添加子节点
for (Employee em : list) {
// 加子节点
Element employee = root.addElement("employee");
// 加子节点属性
if (em.getName().equals("科比")) {
employee.addAttribute("depart",
a22e
"技术部");
}
// 加子节点的子节点(id)
Element id = employee.addElement("id");
id.setText(String.valueOf(em.getId()));

// 加子节点的子节点(name)
Element name = employee.addElement("name");
name.setText(em.getName());

// 加子节点的子节点(salary)
Element salary = employee.addElement("salary");
salary.setText(String.valueOf(em.getSalary()));

}

// 将doc写入文件
// 设置输出的格式
OutputFormat format = OutputFormat.createPrettyPrint();
XMLWriter w = new XMLWriter(new FileOutputStream(".\\src\\emp.xml"),
format);

w.write(doc);
w.flush();
w.close();

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 大二 xml