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解析 练习的更多相关文章

  1. java dom xml解析和windows dom解析的差别

    1.java dom 子节点包括空节点. 2.java dom 文档节点值也是其的子节点. 而windows dom(mshtml.dll)子节点不包括空节点,而节点值也不是以子节点的方式来对待的.

  2. Java&Xml教程(二)使用DOM方式解析XML文件

    DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...

  3. 复习知识点:XML解析数据,JOSN解析数据,GET请求数据,POST请求数据

    GDataXMLDocument-XML解析 #pragma mark - ======== Dom XML解析 - (IBAction)domParserActionXML_Document:(id ...

  4. org.w3c.dom(java dom)解析XML文档

    位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会不理想 首先来了解点Java DOM 的 API:1.解析 ...

  5. 精讲 org.w3c.dom(java dom)解析XML文档

    org.w3c.dom(java dom)解析XML文档 位于org.w3c.dom操作XML会比较简单,就是将XML看做是一颗树,DOM就是对这颗树的一个数据结构的描述,但对大型XML文件效果可能会 ...

  6. 初学DOM树解析xml文件

    做了一次设计模式实验的题目: 某软件公司为新开发的智能手机控制与管理软件提供了一键备份功能,通过该功能可以将原本存储在手机中的通信录.短信.照片.歌曲等资料一次性全部拷贝到移动存储介质(例如MMC卡或 ...

  7. 用JAXP的dom方式解析XML文件

    用JAXP的dom方式解析XML文件,实现增删改查操作 dom方式解析XML原理 XML文件 <?xml version="1.0" encoding="UTF-8 ...

  8. DOM&SAX解析XML

    在上一篇随笔中分析了xml以及它的两种验证方式.我们有了xml,但是里面的内容要怎么才能得到呢?如果得不到的话,那么还是没用的,解析xml的方式主要有DOM跟SAX,其中DOM是W3C官方的解析方式, ...

  9. XML解析之DOM解析技术案例

    Java代码: package com.xushouwei.xml; import java.io.File; import javax.xml.parsers.DocumentBuilder; im ...

随机推荐

  1. SpringCloud Erueka配置异常

    com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known serve ...

  2. JDK的下载与Java运行环境

    JDK简介 什么是JDK JDK是Java Development Kit的缩写,意思是Java开发工具包.JDK就好比作人的心脏,人没有了心脏,生命也就失去存在的意义.Java也一样,JDK就是它的 ...

  3. 一篇包含了react所有基本点的文章

    去年,我写了一本关于学习React.js的小书,原来是大约100页. 今年我要挑战自己,把它归纳为一篇文章. 本文不会涵盖什么是React,或者为什么要学习它. 相反,这是面向已经熟悉JavaScri ...

  4. P3452 [POI2007]BIU-Offices

    传送门 首先能想到 $n^2$ 的做法 枚举所有两点,看看是否有边相连,如果没有说明它们一定要在同一集合,用并查集维护一下就行 注意到如果没有边这个条件,其实就相当于问补图有边 所以题意可以转化为,求 ...

  5. 三:GC回收机制

    jvm垃圾回收机制: jvm中有个垃圾回收线程,它是低优先级的,当虚拟机空闲或堆内存不足时,它就会去清除不可达对象. GC是如何去判断对象是否能被回收的 早期GC判断对象是否能被回收时用的引用计数法, ...

  6. C# 获取一个文件的MD5值

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Tex ...

  7. python-使用list和tuple

    list Python内置的一种数据类型是列表:list.list是一种有序的集合,可以随时添加和删除其中的元素. 比如,列出班里所有同学的名字,就可以用一个list表示: >>> ...

  8. Java8 的一些新特性的学习理解

    近期在学习队列相关的一些知识,在学习过程中发现Iterable<T>接口中新增了两个新的方法,出于好奇,就想知道这是什么东东,干什么用的.俗话说:实践出真知,所以就有了以下反复的测试. 先 ...

  9. Python实例教程

    转自:http://codingdict.com/article/9026 Python 100例-01 题目: 输有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数? Python 1 ...

  10. python-数据驱动

    1.parameterized.parameterized import unittest from parameterized import parameterized,param class Te ...