xml(3)
xml的解析方式:dom解析和sax解析
DOM解析
使用jaxp进行增删改查
1.创建DocumentBuilderFactory工厂
2.通过DocumentBuilderFactory工厂创建DocumentBuilder
3.解析xml,得到Document对象
*在对document进行增删改查操作时,需要回写到xml中:
1.创建TransformerFactory回写工厂
2.通过回写工厂,获得Transformer
3.Transformer.transform(new DOMSource(document),new StreamResult(""))
查
private static void selectALL() throws Exception {
/**
*
* 1.创建DocumentFacTory工厂
* 2.通过Document Factory工厂得到DocumentBuilder
* 3.解析xml得到Document对象
*/ //创建工厂
DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance();
//创建BUilder
DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder();
//解析xml 获得document对象
Document document=documentBuilder.parse("src/com//zyf/test.xml"); //获得所有name元素
NodeList list=document.getElementsByTagName("sex");
//遍历
for(int i=0;i<list.getLength();i++){
Node node1=list.item(i);
System.out.println(node1.getTextContent());
}
}
增
public static void addSex() throws Exception{
//创建工厂
DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance();
//获得builder
DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder();
//获得deocument
Document document=documentBuilder.parse("src/com/zyf/test.xml");
//创建节点<sex>nv</sex>
Node sex=document.createElement("sex");
//在sex中创建文本
Node text=document.createTextNode("nv");
// sex.setTextContent("nv");
sex.appendChild(text);
//得到sex的父节点<p1>
NodeList list=document.getElementsByTagName("p1");
Node node1=list.item(0);
//添加进父节点p1
node1.appendChild(sex); //回写
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
transformer.transform(new DOMSource(document),new StreamResult("src/com/zyf/test.xml"));
}
删
public static void removeSex()throws Exception{
//创建工厂
DocumentBuilderFactory documentBuilderFactory=DocumentBuilderFactory.newInstance();
//闯将builder
DocumentBuilder documentBuilder=documentBuilderFactory.newDocumentBuilder();
//获得document
Document document=documentBuilder.parse("src/com/zyf/test.xml");
//获得sex的父节点
//获得sex
NodeList list=document.getElementsByTagName("sex");
Node node1=list.item(0);
//获得sex的父节点
Node parent=node1.getParentNode();
//remove
parent.removeChild(node1);
//回写
//回写工厂
TransformerFactory transformerFactory=TransformerFactory.newInstance();
Transformer transformer=transformerFactory.newTransformer();
transformer.transform(new DOMSource(document), new StreamResult("src/com/zyf/test.xml"));
}[Document是Node的子类]
xml的sax解析方式
xml(3)的更多相关文章
- XML Attributes(XML属性)
XML Attributes(XML属性) android:autoLink 是否自动链接网址或邮箱地址: android:autoText 自动检测错误: android:bufferType ...
- XHtml(Xml+Html)语法知识(DTD、XSD)
那点你不知道的XHtml(Xml+Html)语法知识(DTD.XSD) 什么是XHtml: 摘录网上的一句话,XHTML就是一个扮演着类似HTML的角色的XML. XHtml可当模板引擎应用: CYQ ...
- ajax数据请求4(xml格式)
ajax数据请求4(xml格式): <!doctype html> <html> <head> <meta charset="utf-8" ...
- eclipse的格式化规则(即format.xml文件).
eclipse的格式化规则(即format.xml文件) 下面是文件内容 <?xml version="1.0" encoding="UTF-8" sta ...
- Spring框架[一]——spring概念和ioc入门(ioc操作xml配置文件)
Spring概念 spring是开源的轻量级框架(即不需要依赖其他东西,可用直接使用) spring核心主要两部分 aop:面向切面编程,扩展功能不是修改源代码来实现: ioc:控制反转,比如:有一个 ...
- Java第三阶段学习(十、XML学习)
一.XML学习 1.模拟Servlet执行 在学习完前端及java与数据库后,将进行WEB编程阶段的学习.在WEB编程中,可以通过浏览器访问WEB服务器上的数据.这时WEB服务器就相当于另一台计算机. ...
- Mybatis最入门---代码自动生成(generatorConfig.xml配置)
[一步是咫尺,一步即天涯] 经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成.这里的代码自动生成包括,与数据库一 ...
- 实例化Bean的方法(基于xml配置)-http://blog.csdn.net/shymi1991/article/details/48153293
实例化Bean的方法(基于xml配置) 标签: spring framework 2015-09-01 13:43 918人阅读 评论(0) 收藏 举报 分类: Spring FrameWork(7 ...
- MyBatis入门程序(基于XML配置)
创建一个简单的MyBatis入门程序,实现对学生信息的增删改查功能(基于XML配置) 一.新建一个Java工程,导入MyBatis核心jar包.日志相关的jar包以及连接Oracle数据库所需驱动包, ...
- Spring_day01--Spring的bean管理(xml方式)_属性注入介绍
Spring的bean管理(xml方式) Bean实例化的方式 1 在spring里面通过配置文件 创建对象 2 bean实例化(创建对象)三种方式实现 第一种 使用类的无参数构造创建(重点) Use ...
随机推荐
- T - Nash Matrix CodeForces - 1316D
题意: 输入n行数,没行由2*n个数,表示一个坐标(x,y). 如果x和y==-1表示从该点(i,j)出发,按照构造的前移动不会停下. 否则就要到点(x,y)处停下. 题解: 首先处理-1 枚举每个 ...
- CentOS6.5环境下搭建Apache httpd服务器
前期准备: 1.CentOS6.5虚拟系统: 2.CentOS6.5 IP地址:192.168.2.99 3.虚拟系统能上外网 下面我们就开始配置: 第一步:安装 首先我们需要把Apache http ...
- pytorch中tensor的属性 类型转换 形状变换 转置 最大值
import torch import numpy as np a = torch.tensor([[[1]]]) #只有一个数据的时候,获取其数值 print(a.item()) #tensor转化 ...
- 杂园日记-H5-IOS-Android混合开发
1.js 调用 原生API iOS: window.webkit.messageHandlers.yourFunName.postMessage({"1":"3" ...
- tensor求和( tensor.sum())
1. torch.sum(input, dim, out=None) 参数说明: input:输入的tensor矩阵. dim:求和的方向.若input为2维tensor矩阵,dim=0,对列求和:d ...
- thinkphp5.0.x
payload5.0.24 http://-----/index.php?s=index/think\app/invokefunction&function=call_user_func_ar ...
- all_user_func()详解
来源:https://blog.csdn.net/moliyiran/article/details/83514495 call_user_func — 把第一个参数作为回调函数调用 通过函数的方式回 ...
- tp5--开发规范
在日常开发的过程中,写代码都要有一定的规范,不然可读取就太差了,所以为了以后的维护.对接,好的代码规定是必须的. 以下是我自己对自己提出的要求: 全部: 1) 每个方法都要写好备注(@retrun作 ...
- Redis持久化存储(二)
redis多实例介绍 接上一篇redis.创建数据存放的目录 vim redis.conf +187 dir /application/data/ 重新启动 mkdir /application/da ...
- 【集群实战】Rsync数据同步工具
1. Rsync介绍 1.1 什么是Rsync? Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步备份的优秀工具.Rsync软件适用于unix/linux/windows ...