java操作xm——添加、修改、删除、遍历
package com.xml.zh;
import javax.xml.parsers.*;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*;
public class XmlTest1{ /**
* 使用dom技术对xml进行解析
* @param args
* 从这里我发现: Node 是 Element, document的父类, Element类主要是
* 增加,删除,修改,返回 等。document 创建 xml中的对象
* 例:document.getElementById();方法。
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
//创建一个documentBuilderFactory实例
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
//创建一个documentBuilder
DocumentBuilder db=dbf.newDocumentBuilder();
//指定是那个xml文件
Document document = db.parse("src/class.xml");
//list(document);
//red(document);
update(document);
upda(document);
}
//修改
public static void update(Document doc){
//修改元素内容
Element ele = (Element)doc.getElementsByTagName("mingzi").item(0);
ele.setTextContent("xiaohai"); //修改属性
Element element = (Element)doc.getElementsByTagName("xuesheng").item(0);
element.setAttribute("sex", "nv");
} //删除学生
public static void del(Document doc){
Node node = doc.getElementsByTagName("xuesheng").item(0);
//node.getParentNode().removeChild(node);
//删除属性
Element ele = (Element)node;
ele.removeAttribute("sex");
} //添加学生到xml
public static void add(Document doc){
//取出这个元素
Element element = doc.createElement("xuesheng"); //添加属性
element.setAttribute("sex", "vc"); Element element_name = doc.createElement("mingzi");
element_name.setTextContent("xiaoming");
Element element_nianling = doc.createElement("nianling");
element_nianling.setTextContent("23");
Element element_jieshao = doc.createElement("jieshao");
element_jieshao.setTextContent("gi sh");
element.appendChild(element_name);
element.appendChild(element_nianling);
element.appendChild(element_jieshao); //添加这个元素
doc.getDocumentElement().appendChild(element); }
//更新java在xml文件中操作的内容
public static void upda(Document doc) throws Exception{
//创建一个TransformerFactory实例
TransformerFactory tff = TransformerFactory.newInstance();
//通过TransformerFactory 得到一个转换器
Transformer tf = tff.newTransformer();
//通过Transformer类的方法 transform(Source xmlSource, Result outputTarget)
//将 XML Source 转换为 Result。
tf.transform(new DOMSource(doc), new StreamResult("src/class.xml"));
} //遍历xml文件的元素
public static void list(Node node){
if(node.getNodeType()==Node.ELEMENT_NODE)
System.out.println(node.getNodeName());
//得到该结点的子结点
NodeList nodelist = node.getChildNodes(); for(int i=0;i<nodelist.getLength();i++){
Node n = (Node) nodelist.item(i);
list(n);
}
}
//获取document对象的 元素的 文本
public static void red(Document docu){
NodeList nodelist = docu.getElementsByTagName("xuesheng");
Element element = (Element)nodelist.item(0);
System.out.println(element.getAttribute("sex"));
System.out.println(element.getTextContent());
}
}
java操作xm——添加、修改、删除、遍历的更多相关文章
- 【转】C#添加修改删除文件文件夹大全
[转]C#添加修改删除文件文件夹大全 C#添加修改删除文件文件夹大全 StreamWriter sw = File.AppendText(Server.MapPath(".")+& ...
- 打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件
第三章 建议学习时间8小时 总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demo ...
- SpringBoot定时任务升级篇(动态添加修改删除定时任务)
需求缘起:在发布了<Spring Boot定时任务升级篇>之后得到不少反馈,其中有一个反馈就是如何动态添加修改删除定时任务?那么我们一起看看具体怎么实现,先看下本节大纲: (1)思路说明: ...
- JavaWeb_day03_员工信息添加修改删除
day03员工的添加,修改,删除 修改功能 思路 : 点击修改员工数据之后,跳转到单行文本,查询要修改的员工id的全部信息,主键id设置为readonly,其余的都可以修改, 修改之后,提交按钮,提交 ...
- Web 1三级联动 下拉框 2添加修改删除 弹框
Web 三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- java操作elasticsearch实现查询删除和查询所有
后期博客本人都只给出代码,具体的说明在代码中也有注释. 1.查询删除 //查询删除:将查询到的数据进行删除 @Test public void test8() throws UnknownHostEx ...
- python对MySQL进行添加修改删除以及字符串的操作
# coding=UTF-8 import MySQLdb def dbDperate(sql,param): "定义数据库的添加,修改和删除操作" #获取数据库的连接对象 con ...
- MySQL 字段常用操作 添加,修改,删除,调整字段顺序
整理备忘: 添加字段:alter table 表名Add column 字段名 字段类型 默认值 AFTER 字段名 (在哪个字段后面添加) 例子: alter table appstore_sou ...
- Xamarin.Android 入门实例(4)之实现对 SQLLite 进行添加/修改/删除/查询操作
1.Main.axml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns: ...
随机推荐
- java GUI,贷款服务器
本习题来自<java语言程序设计--进阶篇>第30章,网络编程的习题. 题目描述:为一个客户端编写一个服务器.客户端向服务器发送贷款信息(年利率.贷款年限和贷款总额).服务器计算月偿还额和 ...
- Spring AOP 注解和xml实现 --转载
AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程.可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术. ...
- [ORACLE错误]ORA-00001: unique constraint (...) violated并不一定是数据冲突
遇到这种情况,重建完表和索引后,终于正常INSERT了. prompt Importing table COUPON_ACTIVITYset feedback offset define offin ...
- java14-4 Pattern和Matcher类的使用
获取功能 Pattern和Matcher类的使用 模式和匹配器的基本使用顺序 import java.util.regex.Matcher; import java.util.regex.Pat ...
- 使用JspStudy集成环境快速部署jsp项目
1. 安装jdk 本人网盘资源:https://yunpan.cn/ckZLNbqxkDYYe (提取码:b5e8) 去jdk官网下载最新的jdk: http://www.oracle.com/tec ...
- 应用python编写简单新浪微博应用(一)
转载至:http://blog.sina.com.cn/s/blog_6c39196501016o7n.html 首先,你要有一个新浪微博账号. 申请页面:http://weibo.com 其次,你要 ...
- f2fs解析(四)f2fs的extent特性
extent的意思是“程度”,但是我还是搞不清楚要如何把“程度”和我理解的extent联系到一起. 文件的偏移和page-cache的映射关系体现在address space 中的一颗基数树上:当基数 ...
- Node.js之Promise
2015年发布了ES6标准,所谓 Promise,就是ES6标准的一个对象,用来传递异步操作的消息.它代表了某个未来才会知道结果的事件(通常是一个异步操作),并且这个事件提供统一的 API,可供进一步 ...
- 挖Linux中的古老缩略语
[2005-06-22 15:23][Nigel McFarlane][TechTarget] <<阅读原文>> Unix已经有35年历史了.许多人认为它开始于中世纪,这个中世 ...
- Oracle数据库,数字强制显示2位小数(转)
Oracle数据库,数字强制显示2位小数 在银行.财务等对数字要求敏感的系统中,数字的显示一般有着严格的要求.今遇到一个需求,如题,要求将数字以两位小数的格式显示,如果没有小数,则强制显示为0.例如: ...