对xml文档进行增删改查操作后将其修改结果保存
来源:互联网 发布:淘宝如何绑定支付宝 编辑:程序博客网 时间:2024/05/18 02:17
对xml文档进行增删改查操作后将其修改结果保存
一、可扩展标记语言xml:Extensible Markup Language
1、XML的作用:1)统一数据传输的格式。2)做小型数据库[文件型数据库]。3)做配置文件 .ini .propertity .xml .cfg
2、XML文件的基本格式:
标签:分为双标签和单标签,双标签的开头和结尾标签名必须一致,大小写一样,/ 开头的是结尾标签,单标签必须在 > 前加上 / 来结尾,单标签中不能放文本。
属性:在开始标签中定义一些名值对,值一定是字符串
3、XML文件的基本构成:
1)在第一行是XML声明 <?xml version="1.0" encoding="UTF-8" ?>
2)必须且只能有一对根标签
3)标签可以一层一层嵌
二、写一个简单的xml文档stus.xml然后用Dom进行解析。
DOM : Document Object Model 文档对象模型
DOM解析的基本思路:将整个XML文件一次性读入内存,将整个XML看做一棵文档树,XML中的每一个标签,属性,文本都看做是树上的一个结点,然后可以对结点进行增删改查的操作。
已经编辑好的stus.xml文档
- <?xml version="1.0" encoding="UTF-8"?>
- <stus Class="1401" >
- <stu num="01">
- <name>张三</name>
- <age>19</age>
- <sex>男</sex>
- </stu>
- <stu num="02">
- <name>李四</name>
- <age>20</age>
- <sex>女</sex>
- </stu>
- <stu num="03">
- <name>王五</name>
- <age>21</age>
- <sex>男</sex>
- </stu>
- </stus>
三、开始解析
创建解析工厂
- // 得到解析工厂对象
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- // 生产一个解析器对象
- DocumentBuilder builder = factory.newDocumentBuilder();
- // 开始解析xml文件,得到的解析结果是一个Document对象,Document对象叫做文档树对象
- Document dom = builder.parse("stus.xml");
1、增加节点
基本思路:首先创建一个新的元素节点,将元素节点追加到根节点后面,设置其节点属性。创建标签,设置标签文本内容,最后将新标签添加到新的元素节点中。
代码:
- // 创建一个新的元素节点
- Element stu = dom.createElement("stu");
- // 将元素节点追加到根节点后面
- root.appendChild(stu);
- // 设置节点属性
- stu.setAttribute("num", "04");
- // 创建标签
- Element name = dom.createElement("name");
- Element age = dom.createElement("age");
- Element sex = dom.createElement("sex");
- // 设置标签文本内容
- name.setTextContent("赵六");
- age.setTextContent("19");
- sex.setTextContent("女");
- // 把标签添加到新的元素节点stu中
- stu.appendChild(name);
- stu.appendChild(age);
- stu.appendChild(sex);
2、删除节点
基本思路:获得要删除的节点,然后得到节点的属性值,与要删除的节点的属性值进行比较,如果该属性值对应的节点存在则移除该节点。
代码:
- // 获得根节点
- Element root = (Element) dom.getFirstChild();
- // 获得所有stu节点
- NodeList list = dom.getElementsByTagName("stu");
- for (int i = 0; i < list.getLength(); i++) {
- Node node = list.item(i);
- if (node instanceof Element) {
- Element e = (Element) node;
- // 得到节点的属性值,与要删除的结点的属性值进行比较,然后移除该属性值对应的结点
- String num = e.getAttribute("num");
- if (num.equals("02")) {
- root.removeChild(e);
- break;
- }
- }
- }
3、修改节点
基本思路:获得要修改的节点,修改其属性值,然后获得该节点下的标签,修改标签中的文本内容。
代码:
- // 修改节点属性
- for (int j = 0; j < list.getLength(); j++) {
- Node no = list.item(j);
- if (no instanceof Element) {
- Element el = (Element) no;
- String n = el.getAttribute("num");
- if (n.contains("01")) {
- el.setAttribute("num", "05");
- // 修改标签值
- NodeList li = el.getChildNodes();
- for (int x = 0; x < li.getLength(); x++) {
- Node d = li.item(x);
- if (d instanceof Element) {
- Element ee = (Element) d;
- String noN = ee.getNodeName();
- if (noN.equals("name")) {
- ee.setTextContent("小白");
- } else if (noN.equals("age")) {
- ee.setTextContent("11");
- } else if (noN.equals("sex")) {
- ee.setTextContent("男");
- }
- }
- }
- }
4、查找节点
基本思路:获得所有的节点,用 需要查找的结点的属性值与所有节点进行比较,如果该节点存在,就打印该节点的属性值及其节点下标签的内容。
代码:
- for (int j = 0; j < list.getLength(); j++) {
- Node no = list.item(j);
- if (no instanceof Element) {
- Element el = (Element) no;
- String n = el.getAttribute("num");
- //查找节点,显示其属性值及标签内容
- if(n.equals("03")){
- System.out.println(no.getNodeName()+"\t"+n+no.getTextContent());
- }
- }
- }
4、保存修改后的xml文档
基本思路:先将内存中的Document对象写到xml文件中,然后将整个Document对象作为要写入xml文件的数据源,最后将数据源写入目标文件。
代码:
- // 将内存中的Document对象写到xml文件中
- TransformerFactory tf = TransformerFactory.newInstance();
- Transformer former = tf.newTransformer();
- former.setParameter("version", "1.0");
- former.setParameter("encoding", "GBK");
- // 将整个Document对象作为要写入xml文件的数据源
- DOMSource xmlSource = new DOMSource(dom);
- // 要写入的目标文件
- StreamResult outputTarget = new
- StreamResult(new File("F:\\stus2.xml"));
- former.transform(xmlSource, outputTarget);
0 0
- 对xml文档进行增删改查操作后将其修改结果保存
- xml解析——增删改查操作后将其修改结果保存
- xml解析——增删改查操作后将其修改结果保存
- ASP.NTE 对XML文档进行增删改查操作
- ASP.NTE 对XML文档进行增删改查操作
- 【XML解析】(2)利用DOM解析技术对XML文档进行增删改查操作
- java 使用DOM对XML文档进行增删改查操作
- 如何才能将修改(对元素节点增删改)后的XML文件parse回去呢(使结果保存下来)?
- Dom4j对XML文档的增删改查操作
- 使用C#对XML进行增删改查操作
- 使用C#对XML进行增删改查操作 收藏
- java代码对xml文件进行增删改查操作
- 对数据库进行增删改查操作
- XML—尝试对一个XML文档进行增删查改编程
- XML之------DOM对XML文档增删改查
- XML之------dom4j对XML文档增删改查
- jaxp解析xml 对xml文件进行增删改查
- mongodb对数组元素及内嵌文档进行增删改查操作
- ALOHA算法衍生系列:Iterative Interference Cancellation在ALOHA算法中的应用总结
- 我的Ubuntu 开发环境配置
- ajax在用户登录时异步验证用户合法性
- QST青软实训学员学习总结
- Android开发中AlertDialog的使用方法
- 对xml文档进行增删改查操作后将其修改结果保存
- ECLIPSE类注释模板设置
- 日本文化大追踪
- Leetcode-17. Letter Combinations of a Phone Number
- 再谈bridge模式理解小例子
- 基于Opencv2.4.11+OpenGL(Qt5.6.0)实现增强现实(四)
- 重要的是商业,不是应用(Building a bussiness, not an app)
- 第五节、AHK对话框详解
- 内存连续分配方式采用的几种算法及各自优劣。