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. Java学习day7面向对象编程1-对象和类

    一.Java编程中对象和类的概念 1,什么是类? 答:类是客观存在的,抽象的,概念的东西. 2,什么是对象? 答:对象是具体的,实际的,代表一个事物.例如:车是一个类,汽车,自行车就是他的对象. 关于 ...

  2. 三大浏览器(火狐-谷歌-IE浏览器)驱动版本下载

    1.chrome浏览器: 对于chrome浏览器,有时候会有闪退的情况,有时候也许是版本冲突的问题,我们要对照着这个表来对照查看是不是webdriver和chrome版本不对应 点击下载chrome的 ...

  3. JVM调优 dump文件怎么生成和分析

    1.获取JVM的dump文件的两种方式 1. JVM启动时增加两个参数: #出现 OOME 时生成堆 dump: -XX:+HeapDumpOnOutOfMemoryError #生成堆文件地址: - ...

  4. nodejs 更新代码自动刷新页面

    安装第三方工具: nodemon npm install --global nodemon 安装完毕后使用: 之前使用: node xxx.js 改成 nodemon xxx.js 只要通过nodem ...

  5. 利用sql语句建立全国省市区三级数据库

    一.创建数据库zone CREATE DATABASE IF ONT EXISTS zone; 二.建立省级表并增加数据 DROP TABLE IF EXISTS `provinces`; CREAT ...

  6. hdu 4082 Hou Yi's secret(暴力枚举)

    Hou Yi's secret Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  7. shell 数组中 @ 跟 * 的区别

    关于在shell脚本中数组变量中 “*”跟 “@” 区别 “*”当变量加上“” 会当成一串字符串处理. “@”变量加上“” 依然当做数组处理. 在没有加上“” 的情况下 效果是等效的. #!/bin/ ...

  8. mysql数据同步到Elasticsearch

    1.版本介绍 Elasticsearch: https://www.elastic.co/products/elasticsearch 版本:2.4.0   Logstash: https://www ...

  9. bzoj4399 魔法少女LJJ 线段树合并+线段树二分+并查集

    题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4399 题解 毒瘤题 \(9\) 种操作还有支持动态图的连通性 仔细读题 $ c<=7$. ...

  10. vant使用中。。。

    微信小程序 没有找到 node_modules 目录 https://blog.csdn.net/u014726163/article/details/82898428 使用有赞的npm包 初始化 n ...