xml文档对象模型doc
对与DOM来说 ,一切都是节点Node;
②Document可以看成一个节点,Element可以看成一个节点,Text可以看成一个节点,
封装出来的对象都可以看成节点Node;
③在JDK中,Node是Doucument(文档),Element(标签元素),Text(文本对象), Attr(属性对象)的父接口;
原生API解析XML
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("C:\\Users\\Administrator\\eclipse-workspace\\day35\\ghhj\\contacts.xml");
Element contact= doc.getDocumentElement();//根元素
NodeList names = contact.getElementsByTagName("name");
Element name = (Element) names.item(1);
System.out.println(name.getTextContent());
或 NodeList linkmans = doc.getElementsByTagName("linkman");
linkmans.item(1).getElementsByTagName("name");
Element linkman = (Element) linkmans.item(1);
2 把第一个联系人的邮箱改掉
public void modify()throws Exception {
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse("C:\\Users\\Administrator\\eclipse-workspace\\day35\\ghhj\\contacts.xml");
Element contact= doc.getDocumentElement();//根元素
Element contact = doc.getDocumentElement();
Element linkman = (Element) (contact.getElementsByTagName("linkman").item(0));
Element email= (Element)(linkman.getElementsByTagName("email").item(0));
email.setTextContent("110110@qq.com");
/////使用TransFormer类 把 内存中的数据 同步到xml里面去;
Transformer trant = TransformerFactory.newInstance().newTransformer();
Source source = new DOMSource(doc);
Result result= new StreamResult(new File("G:\\EclipseWorkSpace\\testXml\\src\\com\\cj\\JAXP\\contacts.xml"));
trant.transform(source,result);
}
//添加一个联系人信息
@Test
public void add()throws Exception {
//拿到document对象
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File("G:\\EclipseWorkSpace\\testXml\\src\\com\\cj\\JAXP\\contacts.xml"));
//获取根节点元素
Element contact = doc.getDocumentElement();
//创建所有节点对象
Element linkman = doc.createElement("linkman");
Element name = doc.createElement("name");
name.setTextContent("李四");
Element email = doc.createElement("email");
email.setTextContent("110@qq.com");
Element address = doc.createElement("address");
address.setTextContent("安徽省");
Element group = doc.createElement("group");
group.setTextContent("111111");
//将子标签添加到linkman标签内
linkman.appendChild(name);
linkman.appendChild(email);
linkman.appendChild(address);
linkman.appendChild(group);
//将liakman添加到contact标签内
contact.appendChild(linkman);
//执行doc对象与xml文件同步
//1.获取Transformer对象
Transformer trant = TransformerFactory.newInstance().newTransformer();
//2.创建Source对象(绑定doc对象)和Result对象(绑定文件对象)
Source xmlSource = new DOMSource(doc);
Result outputTarget = new StreamResult(new File("G:\\EclipseWorkSpace\\testXml\\src\\com\\cj\\JAXP\\contacts.xml"));
//3.将doc对象同步到xml文件中
trant.transform(xmlSource, outputTarget);
}
// 删除第三个联系人;
@Test
public void delete()throws Exception {
//拿到document对象
Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(new File("G:\\EclipseWorkSpace\\testXml\\src\\com\\cj\\JAXP\\contacts.xml"));
//获取根节点元素
Element contact = doc.getDocumentElement();
//获取所有linkman元素
NodeList linkmans = contact.getElementsByTagName("linkman");
//将contact的第三个子节点(linkman)删除
contact.removeChild(linkmans.item(2));
//执行doc对象与xml文件同步
//1.获取Transformer对象
Transformer trant = TransformerFactory.newInstance().newTransformer();
//2.创建Source对象(绑定doc对象)和Result对象(绑定文件对象)
Source xmlSource = new DOMSource(doc);
Result outputTarget = new StreamResult(new File("G:\\EclipseWorkSpace\\testXml\\src\\com\\cj\\JAXP\\contacts.xml"));
//3.将doc对象同步到xml文件中
trant.transform(xmlSource, outputTarget);
}
}
xml文档对象模型doc的更多相关文章
- Java高级特性 第13节 解析XML文档(1) - DOM和XPath技术
一.使用DOM解析XML文档 DOM的全称是Document Object Model,也即文档对象模型.在应用程序中,基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合(通常称DOM树 ...
- 【Win10 应用开发】自适应Toast通知的XML文档结构
老规矩,在开始之前老周先讲个故事. 话说公元2015年7月20日,VS 2015发布.于是,肯定有人会问老周了,C#6有啥新特性,我学不来啊.学不来的话你应该检讨.老周比较保守地计算一下,学会C# 6 ...
- Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构
分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...
- 文档对象模型操作xml文档
简介 :文档对象模型(DOM)是一种用于处理xml文档的API函数集. 2.1文档对象模型概述 按照W3C的定义,DOM是“一种允许程序或脚本动态地访问更新文档内容,结构和样式的.独立于平台和语言的规 ...
- C#操作XML文档(XmlDocument、XmlNode、XmlAttribute、SelectSingleNode、SelectNodes、XmlNodeList)
XML文档是一种通用的文档,这种文档既可以用.config作为后缀也可以用.xml作为后缀.XML文档主要由元素节点和节点的属性共同构成的.它有且仅有一个根节点,其他的节点全部都是根节点的子节点或者子 ...
- XML——对XML文档的创建与增删改查
一.创建的第一种方式 //1.创建一个XML文档 XmlDocument doc = new XmlDocument(); //2.创建第一行描述信息 XmlDeclaration dec = do ...
- org.w3c.dom(java dom)解析XML文档
位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析 ...
- 精讲 org.w3c.dom(java dom)解析XML文档
org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...
- xml.dom——文档对象模型API
文档对象模型,或者“DOM”,是一个跨语言API的World Wide Web Consortium(W3C)来访问和修改XML文档.DOM的实现提供了一个XML文档树结构,或允许客户机代码从头开始建 ...
随机推荐
- 关于linux下安装并打开网易云音乐——v 1.0.0
首先,在网易云音乐官网的下载页面下载linux版本网易云音乐安装包(.deb文件) 下载好之后,在下载文件夹中双击打开文件,等待安装完毕 安装完成之后,直接双击图标是打不开的 需要用管理员命令打开 c ...
- 深度学习中将类别标签映射到one_hot向量
有时我们的样本标签,都是标记从0开始直至到类别的个数.在模型训练的时候,这些标签需要变成one_hot向量,这样才能够跟softmax出来的概率做互熵损失,计算loss. 那么,映射的方法如下: de ...
- 如何用Eclipse+maven创建servlet 3.0 web 项目
用eclipse + maven, 选择 maven-archetype-webapp,默认的servlet版本是2.3. 目前servlet版本都已经是3.X. 那有什么办法可以创建servlet ...
- Uniform Resource Name Server
HTTP The Definitive Guide 按址标识 identify by address 按名标识 identify by name Domain Name Server Uniform ...
- iOS - 常用的CG结构体
CGPoint.CGSize.CGRect.CGRectEdge实际上都是结构体 一,几个常用的结构体 CGPoint 定义一个点,设置x坐标和y坐标 struct CGPoint { CGFlo ...
- [knowledge][http] http
关于,底层承载协议的规定. HTTP communication usually takes place over TCP/IP connections. The [], but other port ...
- maven如何将本地jar安装到本地仓库
1.首先确认你的maven是否已经配置: 指令:mvn -v 2.本地的jar包位置: 3.在自己项目pom.xml中添加jar依赖: <dependency> <groupId&g ...
- set的经典应用
set的经典应用 刚开始用map标记一个测试点超时了 ┭┮﹏┭┮: 用set的find 减少了循环提高了效率 #include <bits/stdc++.h>using namespace ...
- 获取 base64 的封装
/** * 1. 如何实例化 const fileInput = await FileInput.init(fileInputEle, isMulFile) */ export class FileI ...
- VS2013 opencv配置
有三个地方需要配置,在配置之前首先要将platform配置好,下面的例子是x64 Release的“ 然后需要将include.lib的路径配置好 然后将dll拷贝至编译生成的Release文件夹中即 ...