• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JSP > JSP基于dom解析xml实例详解

JSP基于dom解析xml实例详解

作者:awj3584 字体:[增加 减小] 来源:互联网 时间:2017-05-11

awj3584通过本文主要向大家介绍了dom解析xml,dom解析xml文件,java dom解析xml,dom4j解析xml,dom4j xml等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了JSP基于dom解析xml的方法。分享给大家供大家参考,具体如下:

初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩)O~

实体类:User

public class User {
 private String name;
 private String pwd;
 private String email;
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public String getPwd() {
 return pwd;
 }
 public void setPwd(String pwd) {
 this.pwd = pwd;
 }
 public String getEmail() {
 return email;
 }
 public void setEmail(String email) {
 this.email = email;
 }
}

</div>

数据访问层接口:UserDao

public interface UserDao {
 boolean login(String name, String pwd);
 void insertUser(User user);
 List<User> selectUser();
 void updateUser(User user);
 boolean deleteUser(String name);
 public User findByName(String name);
}

</div>

接口实现类:UserDaoImpl

public class UserDaoImpl implements UserDao {
 private static final String PATH="xml文件路径";
 private void build(Document dom) {
 try {
  //定义转换器
  Transformer f = TransformerFactory.newInstance().newTransformer();
  //设置输出的编码格式
  f.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
  //构建dom源
  DOMSource source = new DOMSource(dom);
  //指定文件存放的目标路劲
  StreamResult sr = new StreamResult(new File(PATH));
  //执行转换操作
  f.transform(source, sr);
 } catch (Exception e) {
  e.printStackTrace();
 }
 }
 //登陆
 public boolean login(String name, String pwd) {
 boolean flag = false;
 try {
  //根据以有的xml文件创建Document对象
  Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
  //获取user节点下的子节点
  NodeList list = dom.getElementsByTagName("user");
  //遍历list,数据匹配退出
  for(int i = 0; i<list.getLength(); i++) {
  Element el = (Element)list.item(i);
  if(name.equals(el.getAttribute("name")) && pwd.equals(el.getAttribute("pwd"))) {
   flag = true;
   break;
  }
  }
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } 
 return flag;
 }
 //添加操作
 public void insertUser(User user) {
 try {
  //创建全新的Document对象
  Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument();
  //创建根节点users
  Element el = dom.createElement("users");
  //将根节点添加到dom中
  dom.appendChild(el);
  //创建子节点
  Element e2 = dom.createElement("user");
  //将子节点添加到根节点中
  el.appendChild(e2);
  //取得xml文件中现有的信息
  List<User> users = this.selectUser();
  for(int i = 0; i < users.size(); i++){
  //创建节点user
  Element el3 = dom.createElement("user");
  User us =users.get(i);
  //设置节点的属性(name,pwd,email)
  el3.setAttribute("name", us.getName());
  el3.setAttribute("pwd", us.getPwd());
  el3.setAttribute("email", us.getEmail());
  //添加到根节点中
  el.appendChild(el3);
  }
  e2.setAttribute("name", user.getName());
  e2.setAttribute("pwd", user.getPwd());
  e2.setAttribute("email", user.getEmail());
  build(dom);
 } catch (ParserConfigurationException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 //查询操作
 public List<User> selectUser() {
 List<User> userList = new ArrayList<User>();
 try {
  //根据已有的xml文件创建dom
  Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
  //获取所有user节点下的子节点
  NodeList list = dom.getElementsByTagName("user");
  for(int i = 0;i <list.getLength();i++){
  User user =new User();
  Element element = (Element)list.item(i);
  user.setName(element.getAttribute("name"));
  user.setPwd(element.getAttribute("pwd"));
  user.setEmail(element.getAttribute("email"));
  userList.add(user);
  }
 } catch (Exception e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 return userList;
 }
 //修改操作
 public void updateUser(User user) {
 try {
  //根据以有的xml文件创建dom
  Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
  //获取user节点下的子节点
  NodeList list = dom.getElementsByTagName("user");
  //遍历list
  for(int i = 0;i < list.getLength();i++) {
  Element el = (Element)list.item(i);
  //根据name属性去修改
  if(user.getName().equals(el.getAttribute("name"))) {
   el.setAttribute("pwd", user.getPwd());
   el.setAttribute("email", user.getEmail());
   build(dom);
  }
  }
 } catch (SAXException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 } catch (ParserConfigurationException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
 }
 }
 //删除操作
 public boolean deleteUser(String name) {
 try {
  //根据以有xml文件创建domcumet对象
  Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
  //获取user节点下的子节点
  NodeList list = dom.getElementsByTagName("user");
  //遍历list
  for(int i=0;i<list.getLength();i++) {
  Element el = (Element)list.item(i);
  if(name.equals(el.getAttribute("name"))) {
   el.getParentNode().removeChild(el);
   build(dom);
   return true;
  }
  }
 } catch (Exception e) {
  // TODO: handle exception
 }
 return false;
 }
 //根据name查找
 public User findByName(String name) {
 User user = new User();
 try {
  //根据以后的xml文件创建document对象
  Document dom = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File(PATH));
  //获取user节点下的子节点集合
  NodeList list = dom.getElementsByTagName("user");
  for(int i=0;i<list.getLength();i++) {
  Element el = (Element)list.item(i);
  if(name.equals(el.getAttribute("name"))) {
   user.setName(el.getAttribute("name"));
   user.setPwd(el.getAttribute("pwd"));
   user.setEmail(el.getAttribute("email"));
   break;
  }
  }
 } catch (Exception e) {
  e.printStackTrace();
 }
 return user;
 }
}

</div>

业务逻辑层接口:UserService

boolean login(String name, String pwd);
void insertUser(User user);
List<User> selectUser();
void updateUser(User user);
boolean deleteUser(String name);
public User findByName(String name);

</div>

接口实现类:UserServiceImpl

public class UserServiceImpl implements UserService {
 UserDao dao = new UserDaoImpl();
 public boolean login(String name, String pwd) {
 return dao.login(name, pwd);
 }
 public void insertUser(User user) {
 dao.insertUser(user);
 }
 public List<User> selectUser() {
 return dao.selectUser();
 }
 public void updateUser(User user) {
 dao.updateUser(user);
 }
 public boolean deleteUser(String name) {
 return dao.deleteUser(name);
 }
 public User findByName(String name) {
 return dao.findByName(name);
 }
}
</div>

控制层:UserAction

public class UserAction extends ActionSupport{
  private User user;
 public User getUser() {
 return user;
 }
 public void setUser(User user) {
 this.user = user;
 }
 UserService userService = new UserServiceImpl();
 public String selectUser(){
 HttpServletRequest request = ServletActionContext.getRequest();
 List<User> users = new ArrayList<User>();
 users = userService.selectUser();
 request.setAttribute("USER", users);
 return "select";
 }
 /**
 * 登陆
 * @return
 */
 public String login(){
 if(user.getName() != null && user.getPwd() != null) {
  bool



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • JSP基于dom解析xml实例详解

相关文章

  • 2017-05-11jsp实现防盗链的方法
  • 2017-05-11jsp页面iframe高度自适应的js代码
  • 2017-05-11jsp web.xml文件的作用及基本配置
  • 2017-05-11jsp页面中插入css样式的三种方法总结
  • 2017-08-14jsp百度编辑器ueditor 提示后端配置项没有正常加载,上传插件不能正常使用!
  • 2017-05-11struts json 类型异常返回到js弹框问题解决办法
  • 2017-05-11J2ME/J2EE实现用户登录交互 实现代码
  • 2017-05-11JSP文件下载功能的4种方法
  • 2017-05-11IIS6+TOMCAT整合,实战实例!
  • 2017-05-11Spring AOP 基于注解详解及实例代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • (jsp/html)网页上嵌入播放器(常用播放器代码整理)
    • jsp连接数据库大全
    • JSP自定义标签案例分析
    • jsp使用cookie存储中文示例分享
    • win2000下jsp平台搭建的简单过程
    • jsp hibernate 数据保存操作的原理
    • JSP开发导引
    • Jsp中如何让图片在div中居中
    • JSP运行原理和九大隐式对象说明
    • JSP 从配置文件获取参数详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有