java读取xml和xml写入数据
来源:互联网 发布:如何防止网络成瘾 编辑:程序博客网 时间:2024/05/19 00:49
package cn.itcast.usermng.dao;import java.io.PrintWriter;import java.io.Writer;import org.dom4j.Document;import org.dom4j.Element;import org.dom4j.io.OutputFormat;import org.dom4j.io.SAXReader;import org.dom4j.io.XMLWriter;import cn.itcast.usermng.domain.User;/** * 持久层(数据层) * * 用来访问xml文件! * @author cxf * * 某一实现类! */public class UserDaoImpl implements UserDao {/** * 插入对象到xml中 * @param form */public void addUser(User form) {/* * 1. 得到Document * 2. 得到root元素 * 3. 要把User对象转换成Element元素 * 4. 把user元素插入到root元素中 * 5. 回写document */try {/* * 1. 得到Docuembnt */// 创建解析器SAXReader reader = new SAXReader();// 调用读方法,得到DocumentDocument doc = reader.read("F:/users.xml");/* * 2. 得到根元素 */Element root = doc.getRootElement();/* * 3. 完成添加元素,并返回添加的元素! * 向root中添加一个名为user的元素!并返回这个元素 */Element userElement = root.addElement("user");// 设置userElement的属性!userElement.addAttribute("username", form.getUsername());userElement.addAttribute("password", form.getPassword());userElement.addAttribute("age", String.valueOf(form.getAge()));userElement.addAttribute("gender", form.getGender());/* * 回写 * 注意:创建的users.xml需要使用工具修改成UTF-8编码! * Editplus:标记列--> 重新载入为 --> UTF-8 */// 创建目标输出流,它需要与xml文件绑定Writer out = new PrintWriter("F:/users.xml", "UTF-8");// 创建格式化器OutputFormat format = new OutputFormat("\t", true);format.setTrimText(true);//先干掉原来的空白(\t和换行和空格)!// 创建XMLWrtierXMLWriter writer = new XMLWriter(out, format);// 调用它的写方法,把document对象写到out流中。writer.write(doc);// 关闭流out.close();writer.close();} catch(Exception e) {// 把编译异常转换成运行异常!throw new RuntimeException(e);}}/** * 按用户名进行查询 * @param username * @return */public User findByUsername(String username) {/* * 1. 得到Docuemnt * 2. 给出xpath表达式 * 3. 调用docuemnt的方法进行xpath查询,得到Element * 4. 把Element转换成User对象,返回! */try {/* * 1. 得到Docuembnt */// 创建解析器SAXReader reader = new SAXReader();// 调用读方法,得到DocumentDocument doc = reader.read("F:/users.xml");/* * 2. 准备xpath * //开头表示没有深的限制,可以在文档查询子元素、子元素的子元素! * []中放的叫谓语,其实就是查询条件 * @username表示username属性,限定其必须等于方法参数username */String xpath = "//user[@username='" + username + "']";/* * 3. 调用document方法完成查询 */Element userEle = (Element)doc.selectSingleNode(xpath);if(userEle == null) {return null;}/* * 4. 把元素转换成User类的对象,然后返回 */User user = new User();// 获取元素的username属性值,赋给对象的username属性user.setUsername(userEle.attributeValue("username"));user.setPassword(userEle.attributeValue("password"));user.setAge(Integer.parseInt(userEle.attributeValue("age")));user.setGender(userEle.attributeValue("gender"));return user;} catch(Exception e) {throw new RuntimeException(e);}}}
0 0
- java读取xml和xml写入数据
- java读取xml和xml写入数据
- java将数据写入xml与读取xml文件数据
- java写入/读取xml
- xml读取和写入
- php操作XML,读取数据和写入数据的方法
- php操作XML,读取数据和写入数据的方法
- XML文件写入和读取
- xml读取和写入---------xml学习笔记
- 关于XML的读取与写入数据
- C# xml文件读取节点写入数据
- Java 流式Xml读取 写入 StAX
- Xml文件的读取与写入 java
- 使用 JDOM 读取和写入 XML 文件
- PDA中XML的读取和写入
- Xml读取和写入以及新建
- android编程:xml文件读取和写入
- .net XML 读取 写入
- liunx unzip重命名
- TCP/IP构建和解析协议消息
- spring
- java.util.concurrent翻译----Executor框架--类ScheduledThreadPoolExecutor
- Android新手入门安卓Day4笔记(亲测-实用)
- java读取xml和xml写入数据
- vs2005工程用vs2010打开后,再次直接双击用2010打开
- JMeter组件执行顺序与作用域
- 折叠效果,箭头由右变下
- Android App 瘦身总结
- Swift 3.0 限制字符输入个数
- jenkins整合sonarqube
- css中position的四种定位
- linux web项目部署到tomcat服务器