body, table{font-family: 微软雅黑; font-size: 10pt}
table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;}
th{border: 1px solid gray; padding: 4px; background-color: #DDD;}
td{border: 1px solid gray; padding: 4px;}
tr:nth-child(2n){background-color: #f8f8f8;}

1. 向该xml文档里添加一个用户,姓名:王五,;location:铁岭;grade:99
2. 给每个学生增加一条信息,性别。
3. 删除第一个学生张三的所有信息。
4. 将第二个学生李四的姓名改为 李四光
5. 给每个学生增加一个ID属性。
exam.xml Exam.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><exam>
        <student examid="222" idcard="111">
                <name>张三</name>
                <location>沈阳</location>
                <grade>89</grade>
        </student>
        <student examid="444" idcard="333">
                <name>李四</name>
                <location>大连</location>
                <grade>97</grade>
        </student>
</exam>
<?xml version="1.0" encoding="UTF-8" standalone="no"?><exam>
        <student ID="0" examid="444" idcard="333">
                <name>李四光</name>
                <location>大连</location>
                <grade>97</grade>
        <性别/></student>
<student ID="1" examid="333" idcard="222"><name>王五</name><location>铁岭</location><grade>99</grade><性别/></student></exam>
XMLwork.java
package com.java.home4;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class XMLwork {
        public static void main(String[] args) throws Exception {
                DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
                DocumentBuilder documentBuilder=dbf.newDocumentBuilder();
                Document  document=documentBuilder.parse("exam.xml");
      //1. 向该xml文档里添加一个用户,姓名:王五,;location:铁岭;grade:99
                Element newStudent=document.createElement("student");
                newStudent.setAttribute("idcard", "222");
                newStudent.setAttribute("examid", "333");
                Element newStudentName=document.createElement("name");
                newStudentName.setTextContent("王五");
                Element newStudentLocation=document.createElement("location");
                newStudentLocation.setTextContent("铁岭");
                Element newStudentGrade=document.createElement("grade");
                newStudentGrade.setTextContent("99");
                newStudent.appendChild(newStudentName);
                newStudent.appendChild(newStudentLocation);
                newStudent.appendChild(newStudentGrade);
                NodeList rootElement = document.getElementsByTagName("exam");
                Node item = rootElement.item(0);
                item.appendChild(newStudent);
     
//2. 给每个学生增加一条信息,性别。
                NodeList studentList = document.getElementsByTagName("student");
                System.out.println(studentList.item(0).getFirstChild().getTextContent());
                for(int i=0;i<studentList.getLength();++i){
                        Element newSex=document.createElement("性别"); 
//有几个student就要新建几个
                        studentList.item(i).appendChild(newSex);
                }
      //3. 删除第一个学生张三的所有信息。
                Node rootNode =document.getElementsByTagName("exam").item(0);
                rootNode.removeChild(studentList.item(0));
      //4. 将第二个学生李四的姓名改为 李四光
                for(int i=0;i<studentList.getLength();++i){
                        for(int j=0;j<studentList.item(i).getChildNodes().getLength();j++){
                                if( studentList.item(i).getChildNodes().item(j).getNodeName().equals("name") )
                                        if( studentList.item(i).getChildNodes().item(j).getTextContent().equals("李四") )
                                        studentList.item(i).getChildNodes().item(j).setTextContent("李四光");
                        }
                }
      //5. 给每个学生增加一个ID属性。
                for(int k=0;k<studentList.getLength();++k){
                        String arg=k+"";
                        ((Element)studentList.item(k)).setAttribute("ID",arg);
                }
      //xml写入
        TransformerFactory tsf =TransformerFactory.newInstance();
        Transformer tsTransformer = tsf.newTransformer();
        tsTransformer.transform(
        new DOMSource(document),
        new StreamResult("src/Exam.xml"));
        }
}

JAXP/DOM demo的更多相关文章

  1. JAXP Dom 案例 对xml文件进行增加 查找 删除

    利用 JAXP 对 XML文件 的处理,把xml当做一个数据库来对待

  2. XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax

    本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...

  3. Java用DOM操作xml

    JAXP DOM方式解析XML文档实例增删改查package jiexi; import javax.xml.parsers.DocumentBuilder; import javax.xml.par ...

  4. jQuery学习之旅 Item4 细说DOM操作

    jQuery-–DOM操作(文档处理) Dom是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准 ...

  5. XML解析之JAXP

    body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...

  6. JavaEE实战——XML文档DOM、SAX、STAX解析方式详解

    原 JavaEE实战--XML文档DOM.SAX.STAX解析方式详解 2016年06月22日 23:10:35 李春春_ 阅读数:3445 标签: DOMSAXSTAXJAXPXML Pull 更多 ...

  7. Java上面出现这个错误如何解决关于XML的

    Java上面出现这个错误如何解决关于XML的 2015-01-07 14:49 hejiashun11325 | 分类:JAVA相关 | 浏览265次 The type org.xmlpull.v1. ...

  8. (转载)XML解析之-XStream解析

    转载来源:http://hwy584624785.iteye.com/blog/1168680 本例使用XStream生成一个xml文件,再发序列化xml文件内容. XStream是一个简单的类库,可 ...

  9. S5中新增的Array方法详细说明

      ES5中新增的Array方法详细说明 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxinxu.com/wor ...

随机推荐

  1. POJ 2155 Matrix (二维树状数组)题解

    思路: 没想到二维树状数组和一维的比只差了一行,update单点更新,query求和 这里的函数用法和平时不一样,query直接算出来就是某点的值,怎么做到的呢? 我们在更新的时候不止更新一个点,而是 ...

  2. 【自定义IK词典】Elasticsearch之中文分词器插件es-ik的自定义词库

    Elasticsearch之中文分词器插件es-ik 针对一些特殊的词语在分词的时候也需要能够识别 有人会问,那么,例如: 如果我想根据自己的本家姓氏来查询,如zhouls,姓氏“周”.      如 ...

  3. [bzoj 1616][Usaco2008 Mar]Cow Travelling游荡的奶牛

    题目描述 奶牛们在被划分成N行M列(2 <= N <= 100; 2 <= M <= 100)的草地上游走,试图找到整块草地中最美味的牧草.Farmer John在某个时刻看见 ...

  4. C#学习笔记(一):C#简介

    计算机语言计算机语言是指用于人与计算机之间通讯的语言机器码——汇编语言——高级语言(面向过程(线性).面向对象(类).面向组件(Unity)) 一.计算机语言发展趋势1.简单:代码生成逻辑2.面向人类 ...

  5. linux——压缩解压命令学习简单笔记

    一: 命令名称:gzip 命令英文原意:GNU zip 命令所在路径:/bin/gzip 执行权限:所有用户 语法:gzip 选项 [文件] 功能描述:压缩文件 压缩后文件格式:.gz 1:只能压缩文 ...

  6. hdu 5668 Circle 中国剩余定理

    Circle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Problem D ...

  7. Python matplot的使用(一)

    其实,使用它的直接原因是因为matlab太大了,不方便.另外,就是它是免费的. 在安装这个库的时候,会需要安装一些它所依赖的库,比如six等.从sourceforge上下载,只需按照提示安装完成就行了 ...

  8. 查找SQL Server 自增ID值不连续记录

    在很多的时候,我们会在数据库的表中设置一个字段:ID,这个ID是一个IDENTITY,也就是说这是一个自增ID.当并发量很大并且这个字段不是主键的时候,就有可能会让这个值重复:或者在某些情况(例如插入 ...

  9. bcompare Linux版 无限试用

    需要root权限.   # mv /usr/bin/bcompare /usr/bin/bcompare.real # cat /usr/bin/bcompare #!/bin/sh rm " ...

  10. 最长的文件路径 Longest Absolute File Path

    2018-07-30 22:05:52 问题描述: 问题求解: 本题个人感觉还是挺有意思的,题目要求的是最长的文件路径,其实是需要keep tracking路径长度,如果出现文件则需要进行比较,看是否 ...