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: ...
随机推荐
- Unity3D 实现简单的语音聊天 [iOS版本]
现在很多手机游戏中的聊天系统都加入语音聊天的功能,相比于传统的文字聊天,语音聊天在MMORPG中显得尤为重要,毕竟直接口头交流总比你码字快得多了,也更直观些. 实现语音聊天的方法很多,U3D中有不少第 ...
- C. Coloring Trees DP
传送门:http://codeforces.com/problemset/problem/711/C 题目: C. Coloring Trees time limit per test 2 secon ...
- ZOJ 3233 Lucky Number --容斥原理
这题被出题人给活活坑了,题目居然理解错了..哎,不想多说. 题意:给两组数,A组为幸运基数,B组为不幸运的基数,问在[low,high]区间内有多少个数:至少被A组中一个数整除,并且不被B中任意一个数 ...
- NGUI:HUD Text(头顶伤害漂浮文字)
HUD Text 很早之前就有闻于NGUI中的HUD Text插件,今天得以尝试,看了会儿官方的文档,楞是没给看明白,官方的ReadMe.txt写的使用方法如下: 官网Usage 1. Attach ...
- web安全测试工具的局限性
讨论安全漏洞的原理,谈谈工具的局限. 先说下扫描工具的原理: 扫描工具可以看做由两部分组成:爬虫+校验机构.爬虫的作用是搜集整个被采集对象的链接,然后校验机构对这些链接逐一进行验证. 说扫描工具的局限 ...
- 工作流模式与K2实现--(2)
结构化过程 这两个模式的共同点在于:模式所涉及流程的执行路径是由运行时决定的,而非设计时确定.包括:Arbitrary cycles(强制循环模式) .Implicit termination( ...
- css3 线性渐变和径向渐变
线性渐变:ie6以下不兼容 径向渐变:只支持firefox.Chrome和Safari <!DOCTYPE html> <html> <head> <meta ...
- 基于jquery实现拆分姓名的方法
jquery拆分姓名处理程序如下,纯js实现的,感兴趣的朋友可以参考下哈,希望对你有所帮助 之前已经分享过一个在dom中用户输入姓名后自动用js拆分成姓与名到表单中的jquery插件,由于项目的需要, ...
- 使用Uploadify实现上传图片生成缩略图例子,实时显示进度条
不了解Uploadify的,先看看前一篇详细说明 http://www.cnblogs.com/XuebinDing/archive/2012/04/26/2470995.html Uploadify ...
- [iOS翻译]《iOS 7 Programming Cookbook》:iOS文件与文件夹管理(下)
三. 创建文件夹 问题: 你想创建文件夹到磁盘,存储一些文件到里面 解决方案: 使NSFileManager类的实例方法createDirectoryAtPath:withIntermediateDi ...