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 ...
随机推荐
- Java数据结构之队列(Queue)
1.使用场景 银行排队的案例: 2.队列介绍 队列是一个有序列表,可以用数组或是链表来实现. 遵循先入先出的原则: 先存入队列的数据,要先取出. 后存入的要后取出 示意图:(使用数组模拟队列示意图) ...
- 三连击 P1008 洛谷 python写法
三连击 P1008 洛谷 题意 将\(1,2, \cdots,9\)共9个数分成3组,分别组成3个三位数,且使这3个三位数构成1:2:3的比例,试求出所有满足条件的3个三位数. 解题思路 这里我使用了 ...
- 说说 HTTP 和 HTTPS 区别??
HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司设计了 SSL(Secure Sockets Layer ...
- 待补 http://acm.hdu.edu.cn/showproblem.php?pid=6602
http://acm.hdu.edu.cn/showproblem.php?pid=6602 终于能够看懂的题解: https://blog.csdn.net/qq_40871466/article/ ...
- python学习第四十九天XML模块的用法
xml是实现不通语言或程序之间进行数据交换的协议,跟json差不多,但是json用起来简单,还没诞生json,以前都是用xml,下面讲述XML模块的用法. 1,导入xml模块 import xml 2 ...
- MySQL里null与空值的辨析
CREATE TABLE `test` ( `col1` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `co ...
- VirtualBox虚拟机与主机互通,并且虚拟机又能上网配置
1.在Virtualbox 的全局模式下建立host-only网络,完成之后在网络邻居的属性中会出现本地连接和virtualbox host-only ethernet 连接 2.点击本地连接的属性, ...
- MVC框架与MTC框架
3.WEB框架 MVC Model View Controller 数据库 模板文件 业务处理 MTV Model Template View 数据库 模板文件 业务处理 ############## ...
- 本地文件夹上传到Github(一)
1.在要上传的文件夹下单击右键,选择Git Bash here打开Git bash,设置全局用户名和邮箱 语法:git config --global user.name wandou 语法:git ...
- mysql中,表与表之间的关系
""" 1.字段的修改.添加.删除 2.多表关系(外键) 3.单表详细操作:增删改,查(各种条件) """ 字段操作 create ta ...