`
fp_moon
  • 浏览: 981745 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

XML文件的增删改查操作(java实现)

阅读更多

xml的初始化及增删改查操作:

//初始化
   private void btnInitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnInitActionPerformed
       // TODO add your handling code here:
       try {
           File file = new File("books.xml");
           DocumentBuilderFactory docFactory = DocumentBuilderFactory.
                                               newInstance();
           DocumentBuilder builder = docFactory.newDocumentBuilder();

           if (!file.exists()) {
               doc = builder.newDocument();
               Element books = doc.createElement("books");
               doc.appendChild(books);
           } else {
               doc = builder.parse(file);
           }
           this.jTextArea1.setText("初始化完成");
       } catch (Exception ex) {
           this.jTextArea1.setText("初始化失败");
       }
   }//GEN-LAST:event_btnInitActionPerformed

   private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed
       // TODO add your handling code here:
       try {
           TransformerFactory tfactory = TransformerFactory.newInstance();
           Transformer transformer = tfactory.newTransformer();
           transformer.setOutputProperty(OutputKeys.INDENT, "yes");

           DOMSource source = new DOMSource(doc);
           StreamResult result = new StreamResult(new File("books.xml"));

           transformer.transform(source, result);

           this.jTextArea1.setText("保存成功");
       } catch (Exception ex) {
           this.jTextArea1.setText("保存失败");
       }
   }//GEN-LAST:event_btnSaveActionPerformed

   private void btnShowActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShowActionPerformed
       // TODO add your handling code here:
       if (doc != null) {
           Element books = doc.getDocumentElement();
           this.jTextArea1.setText(books.getNodeName());

           NodeList nl = null;
           nl = books.getChildNodes();
           for (int i = 0; i < nl.getLength(); i++) {
               Node node = nl.item(i);
               //节点类型,元素1/属性2/文本3/注释8/文档9
               if (node.getNodeType() == 1) {
                   this.jTextArea1.append("\n\t" + node.getNodeName());
                   NodeList nsubs = node.getChildNodes();
                   for (int j = 0; j < nsubs.getLength(); j++) {
                       if (nsubs.item(j).getNodeType() == 1 &&
                           nsubs.item(j).getFirstChild() != null) {
                           this.jTextArea1.append("\n\t\t" +
                                   nsubs.item(j).getNodeName() + " : " +
                                   nsubs.item(j).getFirstChild().
                                   getNodeValue());
                       }
                   }
               }
           }
       }
   }//GEN-LAST:event_btnShowActionPerformed

   private void btnShow2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnShow2ActionPerformed
       // TODO add your handling code here:
       String msg = "";
       if (doc != null){
           NodeList nl = doc.getElementsByTagName("*");
          
           for (int i=0;i<nl.getLength();i++){
               Element e = (Element)nl.item(i);

               //得到属性
               NamedNodeMap nnm = e.getAttributes();
               msg += "元素:" + e.getNodeName() +":" + e.getFirstChild().getNodeValue() + "\n";

               for (int k=0;k<nnm.getLength();k++){
                   Attr att = (Attr)nnm.item(k);
                   msg += "\t属性有\t"+ att.getNodeName() + ":" + att.getNodeValue()+"\n";
               }
           }
       }
       this.jTextArea1.setText(msg);
   }//GEN-LAST:event_btnShow2ActionPerformed

   private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSearchActionPerformed
       // TODO add your handling code here:
       Node node = Search(this.jTextField1.getText());
       if (node != null) {
           this.jTextArea1.setText("找到了此元素");
           this.jTextArea1.append("\n\t书籍编号 \t: " + this.jTextField1.getText());
           NodeList list = node.getChildNodes();
           for (int i = 0; i < list.getLength(); i++) {
               Node sub = list.item(i);
               if (sub.getNodeType() == 1 && sub.getFirstChild() != null) {
                   this.jTextArea1.append("\n\t" + sub.getNodeName() + " \t: " +
                                          sub.getFirstChild().getNodeValue());
               }
           }
       }
       else {
           this.jTextArea1.setText("找不到此元素");
       }
   }//GEN-LAST:event_btnSearchActionPerformed

   private void btnAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAddActionPerformed
       // TODO add your handling code here:

       try {
           //创建元素
           Element elemBook = doc.createElement("book");
           //添加到根元素底下
           doc.getDocumentElement().appendChild(elemBook);

           //为book元素设置属性
           Attr attrId = doc.createAttribute("id"); //创建
           attrId.setNodeValue(this.jTextField1.getText()); //设置值
           elemBook.setAttributeNode(attrId); //设置到book元素

           //为book元素添加子元素name
           Element elemNode = doc.createElement("name"); //创建
           Text textNode = doc.createTextNode(this.jTextField2.getText()); //创建文本节点
           elemNode.appendChild(textNode); //为name子元素指定文本
           elemBook.appendChild(elemNode); //添加为book的子元素

           //为book元素添加子元素price
           elemNode = doc.createElement("price"); //创建
           textNode = doc.createTextNode(this.jTextField3.getText()); //创建文本节点
           elemNode.appendChild(textNode); //为price子元素指定文本
           elemBook.appendChild(elemNode); //添加为book的子元素

           //为book元素添加子元素pub
           elemNode = doc.createElement("pub"); //创建
           textNode = doc.createTextNode(this.jTextField4.getText()); //创建文本节点
           elemNode.appendChild(textNode); //为pub子元素指定文本
           elemBook.appendChild(elemNode); //添加为book的子元素

           //为book元素添加子元素author
           elemNode = doc.createElement("author"); //创建
           textNode = doc.createTextNode(this.jTextField5.getText()); //创建文本节点
           elemNode.appendChild(textNode); //为author子元素指定文本
           elemBook.appendChild(elemNode);

           this.jTextArea1.setText("添加成功");
       } catch (Exception ex) {
           this.jTextArea1.setText("添加失败");
       }
   }//GEN-LAST:event_btnAddActionPerformed

   private void btnModifyActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnModifyActionPerformed
       // TODO add your handling code here:
       Node node = Search(this.jTextField1.getText());
       String[] values = {this.jTextField2.getText(), this.jTextField3.getText(),
                         this.jTextField4.getText(), this.jTextField5.getText()};
       if (node != null) {
           NodeList nl = node.getChildNodes();
           int k = 0;
           for (int i = 0; i < nl.getLength(); i++) {
               Node n = nl.item(i);
               if (n.getNodeType() == 1) {
                   Node newNode = doc.createTextNode(values[k]);
                   if (n.getFirstChild() != null) {
                       n.replaceChild(newNode, n.getFirstChild());
                   } else {
                       n.appendChild(newNode);
                   }
                   k = k + 1;
               }
           }
           this.jTextArea1.setText("修改成功");
       } else {
           this.jTextArea1.setText("找不到要修改的节点");
       }
   }//GEN-LAST:event_btnModifyActionPerformed

   private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDelActionPerformed
       // TODO add your handling code here:
       Node node = Search(this.jTextField1.getText());
       if (node != null) {
           Node parent = node.getParentNode();
           parent.removeChild(node);

           this.jTextArea1.setText("删除成功");
       } else {
           this.jTextArea1.setText("找不到要删除的节点");
       }
   }//GEN-LAST:event_btnDelActionPerformed

   private Node Search(String id) {
       Node node = null;
       Element books = doc.getDocumentElement();
       NodeList nl = null;
       if (books.hasChildNodes()) {
           nl = books.getChildNodes();
           for (int i = 0; i < nl.getLength(); i++) {
               node = nl.item(i);
               if (node.getNodeType() == 1) {
                   Element ele = (Element) node;
                   if (ele.getAttribute("id").equals(id)) {
                       return node;
                   }
               }
           }
       }
       return null;
   }

分享到:
评论

相关推荐

    dom4j解析xml文件(增删改查)

    在“dom4j解析xml文件(增删改查)”这个主题中,我们将深入探讨如何使用DOM4J来实现XML文档的四种基本操作:增加元素、删除元素、更新元素内容以及查询元素。 首先,让我们了解DOM4J的基本用法。在解析XML文件时,...

    java实现对xml文件的增 删 改 查 操作

    要实现对XML文件的增、删、改、查操作,我们需要使用Java的标准库JAXB(Java Architecture for XML Binding)或者DOM(Document Object Model)、SAX(Simple API for XML)等解析器。下面将详细介绍这些操作的具体...

    Xml完全操作 XML增删改查

    在Java中,我们可以使用DOM(Document Object Model)解析器将整个XML文档加载到内存中的树形结构中,便于遍历和操作。另一种解析方式是SAX(Simple API for XML),它采用事件驱动模型,逐行处理XML,节省内存但不...

    JAVA 操作 XML 增删改查

    首先,从"JAVA 操作 XML 增删改查"这个标题来看,我们可以预知内容将涵盖XML文件的基本操作。这些操作通常包括创建XML文件、读取XML内容、修改XML元素以及删除XML节点。在JAVA中,主要使用DOM(Document Object ...

    XML课程设计实现增删改查

    在本"XML课程设计实现增删改查"项目中,我们聚焦于如何使用XML进行数据存储,并通过Java编程实现对这些数据的CRUD(创建Create、读取Read、更新Update、删除Delete)操作。 XML的基本结构包括元素(Element)、属性...

    使用XML进行增删改查技术编程Java源代码

    本教程将深入探讨如何使用XML进行增删改查的操作,并提供相应的Java源代码示例。 首先,我们需要理解XML的基本结构。XML文档由元素构成,元素通过标签来定义,如`&lt;element&gt;`...`&lt;/element&gt;`。属性是附加在元素上的...

    java xml增删改查多种方法

    在Java编程中,XML(eXtensible Markup Language)是一种常用的数据交换格式,它具有良好的结构化和可读性,广泛应用于配置文件、数据存储、...通过熟练掌握这些技术,可以高效地在Java应用中实现XML的增删改查功能。

    Spring实现增删改查

    在这个“Spring实现增删改查”的项目中,我们将深入探讨如何利用Spring框架来实现数据库操作的基础功能。 1. **依赖注入(DI)**:在Spring框架中,DI是一种设计模式,它允许对象之间的关系在运行时被外部容器管理...

    java大作业,实现学生信息增删改查

    编写Web应用程序(JavaEE平台上的应用,能够运行在Tomcat服务器上),实现学生信息的增删改查。 在Web页面上实现添加一个学生记录,删除某个学生记录,修改某个学生记录,和按照姓名,学号进行查询。 要求列表输出...

    Java对XML文件增删改查操作示例

    Java对XML文件增删改查操作示例 XML(Extensible Markup Language)是目前最流行的一种数据交换格式,它的广泛应用在各个领域,包括数据存储、数据交换、配置文件等。Java作为一门现代化的编程语言,当然也提供了...

    XML增删改查源码实现

    本资源提供了XML的增删改查功能的源代码实现,帮助学习者快速掌握如何在实际项目中操作XML文档。下面将详细解释XML的基本概念以及如何实现增删改查功能。 XML的结构: XML文档由元素、属性、文本内容、注释等构成。...

    EasyUI 增删改查的简单实现

    它提供了丰富的组件,如表格、下拉菜单、按钮、对话框等,使得开发者能够快速构建用户界面,尤其是对于增删改查(CRUD)操作的页面。在这个项目中,我们看到使用了 Maven 作为构建工具,SpringMVC 作为后端 MVC 框架...

    java DOM解析xml操作大全,增删改查

    在这个"java DOM解析xml操作大全,增删改查"的主题中,我们将深入探讨如何使用DOM解析XML,以及如何结合三层架构(表示层、业务逻辑层、数据访问层)来实现这些操作。 首先,DOM解析的核心是`javax.xml.parsers....

    对XML进行增删改查

    总的来说,`XMLUtil.java`是一个实用的工具类,它封装了XML处理的常见操作,使得开发者能更便捷地对XML文件进行增删改查。通过理解和使用此类,我们可以高效地处理XML数据,提高代码的可维护性和灵活性。不过,为了...

    对XML进行增删改查例子

    在这个“对XML进行增删改查例子”中,我们将探讨如何操作XML文档,包括添加新节点、删除已有节点、修改现有节点内容以及查询XML结构中的特定信息。 1. **XML的基本结构** XML文档由一系列元素组成,每个元素都有一...

    spring+shiro 增删改查权限控制

    当我们谈论“spring+shiro 增删改查权限控制”时,我们实际上是在讨论如何利用这两个框架实现对应用程序数据操作的权限管理和用户认证。 首先,Spring框架提供了模型-视图-控制器(MVC)架构模式,使得开发者可以更...

    XML的增删改查(升级版)

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、...根据具体需求选择合适的方法,可以实现XML的增删改查操作。在实际项目中,务必注意错误处理和性能优化,确保代码的稳定性和效率。

    java 根据数据表实现增删改查代码自动生成

    这个主题“java 根据数据表实现增删改查代码自动生成”主要关注如何利用Java工具或框架,根据数据库中的数据表结构,自动生成对应的业务操作代码,以减少手动编写的工作量,确保代码的一致性和准确性。 1. **代码...

    SSM实现增删改查

    这个压缩包文件"ssm_1002_1"可能包含了一个简单的示例项目,用于演示如何使用SSM实现数据库的增删改查操作。下面将详细阐述SSM框架的组成部分及其在CRUD操作中的应用。 **1. Spring框架** Spring是Java应用程序的...

    dom4j操作xml的增删改查

    DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了简单而灵活的方式来解析、创建、修改和查询XML文档,是Java开发中的一个常用...通过实践这些基本操作,开发者可以轻松地在自己的项目中实现XML的增删改查功能。

Global site tag (gtag.js) - Google Analytics