org.w3c.dom。 XML解析 练习
HTML文档 1 import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList; public class DomDemolianxi {
public static void main(String[] args) { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = null;
Document doc = null;
try {
builder = factory.newDocumentBuilder();
doc = builder.parse("src/book.xml");
//===============================================
// test1(doc);
// test2(doc);
test3(doc);
// test4(doc);
// test5(doc);
// test6(doc);
// test7(doc);
// test8(doc);
//===============================================
} catch (Exception e) {
e.printStackTrace();
}
} // 1.获取第二本书的作者
public static void test1(Document doc){
NodeList nl = doc.getElementsByTagName("作者");
System.out.println(nl.item(1).getTextContent());
} // 2.获取全部元素的名称
public static void test2(Node d){
if(d.getNodeType()==Node.ELEMENT_NODE){
System.out.println(d.getNodeName());
}
NodeList nl = d.getChildNodes();
for(int i=0;i<nl.getLength();i++){
Node d1 = nl.item(i);
test2(d1);
}
} // 3.把zhd的书售价改为10元
public static void test3(Document doc) throws Exception{
NodeList nl = doc.getElementsByTagName("售价");
nl.item(1).setTextContent("10元");
//把内存中dom树写回xml
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
} // 4.加一个子节点 第二本书 内部价 5角
public static void test4(Document doc) throws Exception{
NodeList nl = doc.getElementsByTagName("书");
Node secondBook = nl.item(1);
Element e = doc.createElement("内部价");
e.setTextContent("7元");
secondBook.appendChild(e);
//把内存中dom树写回xml
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
} // 5.在第二本书 售价的前面增加批发价 5元
public static void test5(Document doc) throws Exception{
Node son = doc.getElementsByTagName("售价").item(1);
Node dad = son.getParentNode();
Element e = doc.createElement("批发价");
e.setTextContent("5元");
dad.insertBefore(e, son);
//把内存中dom树写回xml
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
} // 6.删除第二本书的内部价
public static void test6(Document doc) throws Exception{
Node son = doc.getElementsByTagName("内部价").item(0);
Node dad = son.getParentNode();
dad.removeChild(son);
//把内存中dom树写回xml
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
} // 7.获取第一本书的出版社
public static void test7(Document doc) throws Exception{
Element nl =(Element) doc.getElementsByTagName("书").item(0);
String n =nl.getAttribute("出版社");
System.out.println(n);
} // 8.给第二本书加上出版社(属性)
public static void test8(Document doc) throws Exception{
Element nl = (Element)doc.getElementsByTagName("书").item(1);
nl.setAttribute("出版社", "人民出版社");
//把内存中dom树写回xml
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
} } XML文档:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
<书 id="1" 出版社="wwg日报">
<书名>传奇人生</书名>
<作者>wwg</作者>
<售价>999.0元</售价>
</书>
<书 id="2" 出版社="人民出版社">
<书名>论吃</书名>
<作者>zhd</作者>
<批发价>5元</批发价>
<售价>10元</售价> </书>
</书架>
org.w3c.dom。 XML解析 练习的更多相关文章
- java dom xml解析和windows dom解析的差别
1.java dom 子节点包括空节点. 2.java dom 文档节点值也是其的子节点. 而windows dom(mshtml.dll)子节点不包括空节点,而节点值也不是以子节点的方式来对待的.
- Java&Xml教程(二)使用DOM方式解析XML文件
DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...
- 复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据
GDataXMLDocument-XML解析 #pragma mark - ======== Dom XML解析 - (IBAction)domParserActionXML_Document:(id ...
- 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文件效果可能会 ...
- 初学DOM树解析xml文件
做了一次设计模式实验的题目: 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以将原本存储在手机中的通信录.短信.照片.歌曲等资料一次性全部拷贝到移动存储介质(例如MMC卡或 ...
- 用JAXP的dom方式解析XML文件
用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ...
- DOM&SAX解析XML
在上一篇随笔中分析了xml以及它的两种验证方式.我们有了xml,但是里面的内容要怎么才能得到呢?如果得不到的话,那么还是没用的,解析xml的方式主要有DOM跟SAX,其中DOM是W3C官方的解析方式, ...
- XML解析之DOM解析技术案例
Java代码: package com.xushouwei.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; im ...
随机推荐
- Vue.js状态管理模式 Vuex
vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 安装.使用 vuex 首先我们在 vue. ...
- WPF绑定并转换
首先新建个项目,我的项目名叫BindConverterDemo,你的话什么都可以,我这里只是做demo 再建两个类,DataDemo,ConverterDemo 这个是DataDemo类 public ...
- Oracle 索引数据字典、基于函数的索引
user_indexes 字典视图包含了索引名和唯一性, user_ind_columns视图包含了索引名.表名.以及列名 dba_indexes dba_ind_columns 同理 select ...
- hdu4348 To the moon (可持久化线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4348 题目大意:给定含有n个数的序列,有以下四种操作 1.C l r d:表示对区间[l,r]中的数加 ...
- linux man命令后面各种括号的意义
圆括号 我们经常会看到 在说一个对象的man page 的时候,会有这样的格式: mmap(2) shm_open(3) 这个后面的数字是什么意思呢,通过 man man 命令就可以知道,这个是数字是 ...
- nginx-博客阅读笔记记录-20190916
Nginx 入门学习教程 Ng官网解释: nginx [engine x]是最初由Igor Sysoev编写的HTTP和反向代理服务器,邮件代理服务器和通用TCP / UDP代理服务器. 维基百科解释 ...
- golang API
1.server端程序 package main //简单的JSON Restful API演示(服务端) //author: Xiong Chuan Liang //date: 2015-2-28 ...
- jmeter性能工具 使用手册(一)
前置条件: 在jmeter官网下载jmter 安装包 电脑有java 环境 使用步骤: 打开jmeter 2.新建线程 Test plan--->add-->theads(users)-- ...
- NODE升级到V12.X.X
Node.js 是一个基于Chrome JavaScript运行时的平台,可轻松构建快速,可扩展的网络应用程序.最新版本 node.js yum存储库 由其官方网站维护.使用本教程添加yum存储库,并 ...
- jquery常用用法
1.$("prve + next" ) 选择紧接着在perve后的next元素2.$("#div1 > *&quo ...