xml ---DOM操作
package day03.xml; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List; import javax.xml.crypto.dsig.Transform;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult; import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException; //使用dom方式对xml进行crud
public class Demo3 {
@Test
public void read() throws ParserConfigurationException, SAXException, IOException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=(Document) builder.parse("src/2.xml");
NodeList list=document.getElementsByTagName("soft");
Node node = list.item(1);
String content = node.getTextContent();
System.out.println(content);
}
@Test
public void read1() throws ParserConfigurationException, SAXException, IOException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("src/2.xml"); //获得根结点
Node root=document.getElementsByTagName("soft").item(0);
list(root);
}
private void list(Node node){
if(node instanceof Element){
System.out.println(node.getNodeName());
}
NodeList list=node.getChildNodes();
for(int i=0;i<list.getLength();i++){
Node child=list.item(i);
list(child);
}
}
@Test
//得到name属性内容
public void read3() throws ParserConfigurationException, SAXException, IOException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("src/2.xml");
Element bookname=(Element) document.getElementsByTagName("soft").item(0);
String value =bookname.getAttribute("name");
System.out.println(value); }
@Test
//向xml中添加节点<雪>22222<雪>
public void add1() throws ParserConfigurationException, SAXException, IOException, TransformerException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("src/2.xml");
//创建节点
Element price=document.createElement("雪");
price.setTextContent("22222"); //把创建的节点挂到第一本书上
Element book=(Element) document.getElementsByTagName("a").item(0);
book.appendChild(price); //把更新的内容重新写入xml文件里
TransformerFactory transform =TransformerFactory.newInstance();
Transformer tf=transform.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/2.xml"))); }
@Test
//向xml中添加节点在<a2>22222</a2>前
public void add2() throws ParserConfigurationException, SAXException, IOException, TransformerException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("src/2.xml");
//创建节点
Element price=document.createElement("a3");
price.setTextContent("a222222before"); //参考节点
Element renode=(Element) document.getElementsByTagName("a2").item(0);
//得到要挂的节点
Element book=(Element) document.getElementsByTagName("a").item(0);
//往book节点的制定位置插入
book.insertBefore(price,renode);
//把更新的内容重新写入xml文件里
TransformerFactory transform =TransformerFactory.newInstance();
Transformer tf=transform.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/2.xml"))); }
@Test
//向xml中<a2>22222</a2>节点添加name属性=“xxxxx”
public void add3() throws ParserConfigurationException, SAXException, IOException, TransformerException{
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document document=builder.parse("src/2.xml"); //取得节点
Element bookname =(Element) document.getElementsByTagName("a2").item(0);
bookname.setAttribute("name","XXXXXX"); //把更新的内容重新写入xml文件里
TransformerFactory transform =TransformerFactory.newInstance();
Transformer tf=transform.newTransformer();
tf.transform(new DOMSource(document), new StreamResult(new FileOutputStream("src/2.xml"))); } }
<?xml version="1.0" encoding="UTF-8" standalone="no"?><soft name="snowing">
<a>
<a1>中国</a1>
<a3>a222222before</a3>
<a2 name="XXXXXX">ssssss</a2>
<雪>22222</雪>
</a>
<b>
<b1/>
<b2/>
<雪莹>879</雪莹>
</b>
</soft>
xml ---DOM操作的更多相关文章
- XML DOM操作,适用目前流行的浏览器
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- php中通过DOM操作XML
DOM文档在js里早就接触过,知道DOM不但可以操作html文档,还可以操作XHTML,XML等文档,有着极强的通用性,下面我们通过两个小例子,看看在PHP中是如何用DOM操作XML文档的,和js中差 ...
- php : DOM 操作 XML
DOM 操作 XML 基本用法 XML文件: person.XML <?xml version="1.0" encoding="utf-8" ?> ...
- DOM操作XML文件
一.IE中的XML(IE低版本才支持) 在统一的正式规范出来以前,浏览器对于 XML 的解决方案各不相同.DOM2 级提出了动态创建 XML DOM 规范,DOM3 进一步增强了 XML DOM. 所 ...
- PHP通过DOM操作XML
PHP XML操作类DOMDocument属性及方法 注意大小写一定不能弄错. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataT ...
- java使用DOM操作XML
XML DOM简介 XML DOM 是用于获取.更改.添加或删除 XML 元素的标准. XML 文档中的每个成分都是一个节点. DOM 是这样规定的: 整个文档是一个文档节点 每个 XML 标签是一个 ...
- XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
XML DOM DOM 把 XML 文档视为一种树结构.通过这个 DOM 树,可以访问所有的元素.可以修改它们的内容(文本以及属性),而且可以创建新的元素.元素,以及它们的文本和属性,均被视为节点. ...
- HTML 学习笔记 JQuery(DOM 操作)
一般来说,DOM操作分为三个方面,即:DOM Core(核心), HTML_DOM 和 CSS_DOM. 1.DOM Core DOM Core 并不专属于JavaScript,任何一种支持DOM的程 ...
- jQuery的DOM操作详解
DOM(Document Object Model-文档对象模型):一种与浏览器, 平台, 语言无关的规则, 使用该接口可以轻松地访问页面中所有的标准组件DOM操作的分类 核心-DOM: DOM Co ...
随机推荐
- Verilog HDL那些事_建模篇笔记(实验九:VGA驱动)
1.了解VGA协议 VGA协议有5个输入信号,列同步信号(HSYNC Signal),行同步信号(VSYNC Signal),红-绿-蓝,颜色信号(RGB Signal). 一帧屏幕的显示是由行从上至 ...
- [PHP] - Apache + PHP 环境搭建
Apache和PHP的版本分别为: httpd-2.4.9-win64-VC11.zip php-5.6.9-Win32-VC11-x64.zip 下载地址: php-5.6.9-Win32-VC11 ...
- docker网络配置方法总结
docker启动时,会在宿主主机上创建一个名为docker0的虚拟网络接口,默认选择172.17.42.1/16,一个16位的子网掩码给容器提供了65534个IP地址.docker0只是一个在绑定到这 ...
- WIN SERVER 2008 R2 VPN
http://blog.csdn.net/popelovevivi/article/details/9408851 -- 还差最重要一步. 在“本地用户和组”-“用户”-右键一个你想VPN登录的用户名 ...
- MyBatis学习(二)、SQL语句映射文件(1)resultMap
二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...
- 用PHP+MySQL来做分页的演示
用php做分页弄懂逻辑关系其实不难,不过我在听课的时候估计是被老师讲的那些变量里的英文单词给听懵了,因为有几个变量的名字都很像,只是换了两三个英文字母而已,有的就少几个这样的,听到一半已经不知道老师讲 ...
- logcat--目录
代码实现获取log日志和logcat使用方法:http://www.apkbus.com/android-128263-1-1.html logcat命令使用方法和查看android系统日志缓冲区内容 ...
- STM8 EEPROM:
stm8的EEPROM的搽除是写0,FLASH_PRO与FLASH_DATA写的秘钥顺序相反 EEPROM读写前要解锁的.这个很简单,在技术文档里讲得很清楚.我用一个宏定义来代表EEPROM单元.#d ...
- LinkedList
- php 构造函数格式,具体该怎么写?应该注意什么呢?
在PHP里,如果你没有手写构造函数,则php在实例化这个对象的时候,会自动为类成员以及类方法进行初始化,分配内存等工作,但是有些时候不能满足我们的要求,比如我们要在对象实例化的时候传递参数,那么就需要 ...