java 对xml文件进行 增删改查
2016-03-22 20:42
155 查看
使用jdom.jar 包。下载地址 http://download.csdn.net/detail/jlh912008548/9469719
test.xml 文件如下:
java 代码如下:
test.xml 文件如下:
<?xml version="1.0" encoding="UTF-8"?> <CDRS> <cdr name="1"> <username>ss</username> <password>dd</password> </cdr> <cdr name="2"> <username>ss</username> <password>dd</password> </cdr> <cdr name="3"> <username>ss</username> <password>dd</password> </cdr> <cdr name="4"> <username>ss</username> <password>dd</password> </cdr> <cdr name="5"> <username>ss</username> <password>dd</password> </cdr> <cdr name="6"> <username>jiang</username> <username>12345s</username> </cdr> <cdr name="7"> <username>iiiii</username> <username>12345s</username> </cdr> </CDRS>
java 代码如下:
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.input.SAXBuilder; import org.jdom.output.XMLOutputter; public class TestXml { /** * 新建一个最新的xml 并保存到项目根目录 */ public static void printXml() { // 定义一个root作为xml文档的根元素 Element root = new Element("CDRS"); // 生成一个文档 Document Doc = new Document(root); for (int j = 1; j <= 5; j++) { // 在生成的名称为CDRS的跟元素下生成下一级元素标签名称为cdr Element elements = new Element("cdr"); // 为cdr设置属性名和属性值 elements.setAttribute("name", "" + j); // 在cdr标签内部添加新的元素,即cdr的下一级标签,标签属性名为username,值为ss elements.addContent(new Element("username").setText("ss")); elements.addContent(new Element("password").setText("dd")); // 将已经设置好值的elements赋给root root.addContent(elements); } // 定义一个用于输出xml文档的类 XMLOutputter XMLOut = new XMLOutputter(); try { // 将生成的xml文档Doc输出到c盘的test.xml文档中 XMLOut.output(Doc, new FileOutputStream("./test.xml")); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * 获取xml 文件 根据 name 值 修改修改 * @throws Exception */ public static void editItem() throws Exception{ SAXBuilder sb = new SAXBuilder(); Document doc = sb.build("./test.xml"); Element root = doc.getRootElement(); List<Element> list = root.getChildren("cdr"); for(Element ele : list){ //判断 name 是否为7 为7 就修改 username值 if(ele.getAttributeValue("name").equals("7")){ Element un = ele.getChild("username"); un.setText("iiiii"); } } XMLOutputter XMLOut = new XMLOutputter(); XMLOut.output(doc, new FileOutputStream("./test.xml")); } /** * 获取xml 文件 添加 一个数据项 * @throws Exception */ public static void addItem() throws Exception{ SAXBuilder sb = new SAXBuilder(); Document doc = sb.build("./test.xml"); Element root = doc.getRootElement(); Element elements = new Element("cdr"); elements.setAttribute("name", "7"); elements.addContent(new Element("username").setText("jiang")); elements.addContent(new Element("username").setText("12345s")); root.addContent(elements); XMLOutputter XMLOut = new XMLOutputter(); XMLOut.output(doc, new FileOutputStream("./test.xml")); } }
相关文章推荐
- java指导
- 91. Decode Ways | Java最短代码实现
- JAVA设计模式:简单静态工厂方法模式
- Java读取远程服务器文件到本地
- Java之封装、继承、多态(重载、重写)
- 【集合框架】JDK1.8源码分析之ArrayList(六)
- java web :Context initialization failed
- eclipse中如何查看sdk
- Java开发之简单数据类型
- 关于Java和C#的内部类的小记
- 多线程——Java多线程实现的三种方式
- Java keyword具体解释
- JDK的安装与环境变量配置
- Java 设计模式-工厂模式
- Java基础算法集50题
- java中的坐标转换及测距
- Java读取图片Metadata元数据Exif
- Java的多线程机制系列:不得不提的volatile及指令重排序
- 多线程之指令重排序
- MyEclipse快捷键大全