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 ...
随机推荐
- Spring MVC-学习笔记(1)认识spring mvc
1.基于XML Schema.Controller接口的spring mvc简单例子 1>创建一个动态Web项目,选择同时创建web.xml文件 2>在WEB-INF/lib中粘贴spri ...
- 实现简单的计算器(设计UI)
要点说明: 1.一个textedit控件,其余全部是button控件,button布局方式:栅格布局(Grid layout) 2.对窗体的Title进行修改(默认是工程名) 3.在ui文件中设计的U ...
- 洛谷 P2024 [NOI2001]食物链(种类并查集,加权并查集)
传送门 解题思路 加权并查集: 什么是加权并查集? 就是记录着每个节点到它的父亲的信息(权值等). 难点:在路径压缩和合并节点时把本节点到父亲的权值转化为到根节点的权值 怎么转化呢? 每道题都不一样Q ...
- 从ES6重新认识JavaScript设计模式: 装饰器模式
1 什么是装饰器模式 向一个现有的对象添加新的功能,同时又不改变其结构的设计模式被称为装饰器模式(Decorator Pattern),它是作为现有的类的一个包装(Wrapper). 可以将装饰器理解 ...
- mysql事务的特性?
1.原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执 行. 2.一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的 ...
- webpack打包发布项目
1.打包 :npm run build 2.发布: 1)使用静态服务器工具包 npm install -g serve serve dist 访问:http://www.localhost.5000 ...
- python笔记(2)---不定长参数
python自定义函数中有两种不定长参数, 第一种是*name:加了星号 * 的参数会以元组(tuple)的形式导入 第二种是**name:加了星号 * *的参数会以字典(dict)的形式导入 *na ...
- onupdate
数据的初始化显示刚开始写在onupdate中,文档类中的数据更新之后,希望通过调用UpdateAllViews(FALSE)来实现视图的更新,可以实现!后来觉得不妥,想把初始化显示写在ondraw中, ...
- WiFi密码新攻击破解方法,黑客攻破只需10秒
近日,中国知名黑客安全组织东方联盟研究人员透露了一种新的WiFi黑客技术,使黑客更容易破解大多数现代路由器的WiFi密码,并且攻破只需要10秒,速度非常快. 方法是利用由流行的密码破解工具Hashca ...
- Linux find过滤掉没有查看权限的文件
参考:https://blog.csdn.net/sinat_39416814/article/details/84993424 https://www.jianshu.com/p/2b056e1c0 ...