java对xml节点属性的增删改查实现方法

学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解。

package vastsum;

import java.io.File;
import java.io.FileWriter;
import java.util.Iterator;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
import org.junit.Test;

/**
 * 使用dom4j操作xml
 * 对xml属性操作
 * 时间:2016年10月2号
 * 操作xml文件为contact.xml
 * 本文件文件名为:attrDemo.java
 * @author shutu008
 *
 */
public class attrDemo{
 @Test
 public void exmple() throws Exception{
  //读取XML文件,获得document对象
  SAXReader reader = new SAXReader();
  Document document = reader.read(new File("./src/contact.xml"));

  //获得某个节点的属性对象
  Element rootElem = document.getRootElement();
  //获取根节点属性对象
  Attribute rootAttr = rootElem.attribute("id"); 

  //获取指定节点属性对象
  Element contactElem = rootElem.element("contact");
  Attribute contactAttr = contactElem.attribute("id");

  //遍历某个节点的所有属性
  for (Iterator it = contactElem.attributeIterator();it.hasNext();){
   Attribute conAttr= (Attribute)it.next();
   String conTxt = conAttr.getValue();
   String conAttrName = conAttr.getName();
   System.out.println(conAttrName+" = "+conTxt);
  }
  //设置某节点的属性和值
  contactElem.addAttribute("name", "zhangsan");

  //设置(更改)某属性的值
  Attribute nameAttr = contactElem.attribute("name");
  nameAttr.setValue("lisi");

  //删除某节点的指定属性
  contactElem.remove(nameAttr);
  //将某节点的属性和值写入xml文档中
  XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"));
  writer.write(document);
  writer.close();

  /**
   * 如果文档中有中文需要设置字符编码
   * 用如下语句:
   * OutputFormat format = OutputFormat.createPrettyPrint();
   * format.setEncoding("GBK");
   * XMLWriter writer = new XMLWriter(new FileWriter("./src/contact.xml"),format);
   */
  //获取指定对象的属性名
  System.out.println(rootAttr.getName());
  System.out.println(contactAttr.getName());
  //获取指定对象的属性值
  System.out.println(contactAttr.getValue());
  System.out.println(rootAttr.getValue());
 }
}

备注:以上例子代码可以直接运行。可以使用Junit 4调节本例子的代码。

以下是XML文档:

<?xml version="1.0" encoding="UTF-8"?>
<contactList id="0">
 <contact id="001" class="style">
  <name>张三</name>
  <age>20</age>
  <phone>134222223333</phone>
  <email>zhangsan@qq.com</email>
  <qq>432221111</qq>
 </contact>
 <contact id="002">
  <name>李四</name>
  <age>20</age>
  <phone>134222225555</phone>
  <email>lisi@qq.com</email>
  <qq>432222222</qq>
 </contact>
 <contactTwo>
  <name>王五</name>
  <age>32</age>
  <phone>465431341</phone>
  <emali>af@qq.com</emali>
  <qq>46164694</qq>
 </contactTwo>
 <test>测试</test>
 <test>其他用途</test>
</contactList>

文件目录如图所示:

以上就是小编为大家带来的java对xml节点属性的增删改查实现方法全部内容了,希望大家多多支持我们~

(0)

相关推荐

  • java实现的xml格式化实现代码

    核心代码: package com.ddatsh; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.io.UnsupportedEncodingException; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io.OutputForm

  • java实现Spring在XML配置java类的方法

    1. 创建自己的bean文件:beans.xml <?xml version="1.0" encoding="UTF-8"?> <busi-beans> <beans> <bean id="SysHelloImpl" type="com.cxm.test.SysHello"> <desc>test</desc> <impl-class>com.

  • java实现XML增加元素操作简单示例

    本文实例讲述了java实现XML增加元素操作.分享给大家供大家参考,具体如下: package Day01; import java.io.*; import javax.xml.parsers.*; import javax.xml.transform.*; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public

  • 详解Java解析XML的四种方法

    XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便.对于XML本身的语法知识与技术细节,需要阅读相关的技术文献,这里面包括的内容有DOM(Document Object Model),DTD(Document Type Definition),SAX(Simple API for XML),XSD(Xml Schema Definition),XSLT(Extensible Stylesheet Language Transform

  • java 与testng利用XML做数据源的数据驱动示例详解

    java 与testng利用XML做数据源的数据驱动示例详解 testng的功能很强大,利用@DataProvider可以做数据驱动,数据源文件可以是EXCEL,XML,YAML,甚至可以是TXT文本.在这以XML为例: 备注:@DataProvider的返回值类型只能是Object[][]与Iterator<Object>[] TestData.xml: <?xml version="1.0" encoding="UTF-8"?> <

  • Java获取XML节点总结之读取XML文档节点的方法

    dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的. 要使用dom4j开发,需要下载导入dom4j相应的jar文件. 官网下载:http://www.dom4j.org/dom4j-1.6.1/ github下载:http://dom4j.github.io/ 下载解压之后如图所示: 我们只需要把dom4j-1.6.1.jar文件构建到我们开发项目中就可以了. 下面就以Eclipse创建java项目的构建方法为例说明: 声明:本Java项目的

  • Java开发中读取XML与properties配置文件的方法

    相关阅读: 使用Ajax进行文件与其他参数的上传功能(java开发) 1. XML文件: 什么是XML?XML一般是指可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 2.XML文件的优点: 1)XML文档内容和结构完全分离. 2)互操作性强. 3)规范统一. 4)支持多种编码. 5)可扩展性强. 3.如何解析XML文档: XML在不同的语言中解析XML文档都是一样的,只不过实现的语法不一样,基本的解析方式有两种,一种是SAX方式,是按照XML文件的顺序一

  • xml与Java对象的转换详解

    xml与Java对象的转换详解 1.xstream解析报文 XStreamComponent x = XStreamComponent.newInstance(); x.processAnnotations(new Class[]{EquityExchangeDetail.class,PearTicketCustomerDTO.class,Date.class,Integer.class}); EquityExchangeDetail ptd = (EquityExchangeDetail) x

  • java对xml节点属性的增删改查实现方法

    学习本文之前请先看我的另一篇文章JAVA对XML节点的操作可以对XML操作有更好的了解. package vastsum; import java.io.File; import java.io.FileWriter; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; i

  • java使用DOM对XML文档进行增删改查操作实例代码

    本文研究的主要是java使用DOM对XML文档进行增删改查操作的相关代码,具体实例如下所示. 源代码: package com.zc.homeWork18; import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.Transformer; import javax.xml.tr

  • C#实现XML文档的增删改查功能示例

    本文实例讲述了C#实现XML文档的增删改查功能.分享给大家供大家参考,具体如下: 1. 创建实例XML文件(Books.xml) <?xml version="1.0" encoding="iso-8859-1"?> <bookstore> <book id="1" category="COOKING"> <title lang="en">Everyday I

  • java操作mysql实现增删改查的方法

    本文实例讲述了java操作mysql实现增删改查的方法.分享给大家供大家参考,具体如下: 首先,需要把MySQL与Java连接的jar(mysql-connector-java-5.1.6-bin.jar)包导入工程. package com.cn.edu; import java.beans.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatemen

  • java jdbc连接mysql数据库实现增删改查操作

    jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查

  • PHP实现对xml进行简单的增删改查(CRUD)操作示例

    本文实例讲述了PHP实现对xml进行简单的增删改查(CRUD)操作.分享给大家供大家参考,具体如下: 假如有下面xml文件: <?xml version="1.0" encoding="UTF-8"?> <setting> <preferTime>55.8</preferTime> <playerValue>56</playerValue> <reduceValue>40</r

  • Python面向对象之类和对象属性的增删改查操作示例

    本文实例讲述了Python面向对象之类和对象属性的增删改查操作.分享给大家供大家参考,具体如下: 一.类属性的操作 # -*- coding:utf-8 -*- #! python2 class Chinese: country = 'China' def __init__(self,name): self.name = name def play_ball(self,ball): print('%s play %s' %(self.name,ball)) #查看属性 print(Chinese

  • Java实现RedisUtils操作五大集合(增删改查)

    前排提示,我在这个工具类加了@Component注解,如果在springboot的项目使用,记得通过@Autowired注入使用. import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.*; import org.springframework.stereotype.Component; import java.io.Serializabl

  • javascript实现信息增删改查的方法

    本文实例讲述了javascript实现信息增删改查的方法.分享给大家供大家参考.具体实现方法如下: <body> <div align="center"> <h1>显示所有的用户界面</h1> <div style="border: 1px red solid; margin-bottom: 100px; padding: 10px 10%;"> <table border="1px&quo

  • Java如何实现单链表的增删改查

    一.新建学生节点类 Stu_Node节点包含: 学号:int num; 姓名:String name; 性别:String gender; 下一个节点:Stu_Node next; 为了便于打印节点内容需要重写toString方法 class Stu_Node{ int num; String name; String gender; Stu_Node next; @Override public String toString() { return "Stu_Node{" + &qu

随机推荐