HTML文档

  1 import javax.xml.parsers.DocumentBuilder;
  2 import javax.xml.parsers.DocumentBuilderFactory;
  3 import javax.xml.transform.Transformer;
  4 import javax.xml.transform.TransformerFactory;
  5 import javax.xml.transform.dom.DOMSource;
  6 import javax.xml.transform.stream.StreamResult;
  7 import org.w3c.dom.Document;
  8 import org.w3c.dom.Element;
  9 import org.w3c.dom.Node;
 10 import org.w3c.dom.NodeList;
 11
 12 public class DomDemolianxi {
 13     public static void main(String[] args) {
 14
 15         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
 16         DocumentBuilder builder = null;
 17         Document doc = null;
 18         try {
 19             builder = factory.newDocumentBuilder();
 20             doc = builder.parse("src/book.xml");
 21         //===============================================
 22 //            test1(doc);
 23 //            test2(doc);
 24             test3(doc);
 25 //            test4(doc);
 26 //            test5(doc);
 27 //            test6(doc);
 28 //            test7(doc);
 29 //            test8(doc);
 30         //===============================================
 31         } catch (Exception e) {
 32             e.printStackTrace();
 33         }
 34     }
 35
 36     // 1.获取第二本书的作者
 37     public static void test1(Document doc){
 38         NodeList nl = doc.getElementsByTagName("作者");
 39         System.out.println(nl.item(1).getTextContent());
 40     }
 41
 42     // 2.获取全部元素的名称
 43     public static void test2(Node d){
 44         if(d.getNodeType()==Node.ELEMENT_NODE){
 45             System.out.println(d.getNodeName());
 46         }
 47         NodeList nl = d.getChildNodes();
 48         for(int i=0;i<nl.getLength();i++){
 49             Node d1 = nl.item(i);
 50             test2(d1);
 51         }
 52     }
 53
 54     // 3.把zhd的书售价改为10元
 55     public static void test3(Document doc) throws Exception{
 56         NodeList nl = doc.getElementsByTagName("售价");
 57         nl.item(1).setTextContent("10元");
 58         //把内存中dom树写回xml
 59         TransformerFactory factory = TransformerFactory.newInstance();
 60         Transformer    transformer = factory.newTransformer();
 61         transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
 62     }
 63
 64     // 4.加一个子节点 第二本书 内部价 5角
 65     public static void test4(Document doc) throws Exception{
 66         NodeList nl = doc.getElementsByTagName("书");
 67         Node secondBook = nl.item(1);
 68         Element e = doc.createElement("内部价");
 69         e.setTextContent("7元");
 70         secondBook.appendChild(e);
 71         //把内存中dom树写回xml
 72         TransformerFactory factory = TransformerFactory.newInstance();
 73         Transformer    transformer = factory.newTransformer();
 74         transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
 75     }
 76
 77     // 5.在第二本书 售价的前面增加批发价 5元
 78     public static void test5(Document doc) throws Exception{
 79         Node son = doc.getElementsByTagName("售价").item(1);
 80         Node dad = son.getParentNode();
 81         Element e = doc.createElement("批发价");
 82         e.setTextContent("5元");
 83         dad.insertBefore(e, son);
 84         //把内存中dom树写回xml
 85         TransformerFactory factory = TransformerFactory.newInstance();
 86         Transformer    transformer = factory.newTransformer();
 87         transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
 88     }
 89
 90     // 6.删除第二本书的内部价
 91     public static void test6(Document doc) throws Exception{
 92         Node son = doc.getElementsByTagName("内部价").item(0);
 93         Node dad = son.getParentNode();
 94         dad.removeChild(son);
 95         //把内存中dom树写回xml
 96         TransformerFactory factory = TransformerFactory.newInstance();
 97         Transformer    transformer = factory.newTransformer();
 98         transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
 99     }
100
101     // 7.获取第一本书的出版社
102     public static void test7(Document doc) throws Exception{
103         Element nl =(Element) doc.getElementsByTagName("书").item(0);
104         String n =nl.getAttribute("出版社");
105         System.out.println(n);
106     }
107
108     // 8.给第二本书加上出版社(属性)
109     public static void test8(Document doc) throws Exception{
110         Element nl = (Element)doc.getElementsByTagName("书").item(1);
111         nl.setAttribute("出版社", "人民出版社");
112         //把内存中dom树写回xml
113         TransformerFactory factory = TransformerFactory.newInstance();
114         Transformer    transformer = factory.newTransformer();
115         transformer.transform(new DOMSource(doc),new StreamResult("src/book.xml"));
116     }
117
118
119 }

XML文档:
 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?><书架>
 2     <书 id="1" 出版社="wwg日报">
 3         <书名>传奇人生</书名>
 4         <作者>wwg</作者>
 5         <售价>999.0元</售价>
 6     </书>
 7     <书 id="2" 出版社="人民出版社">
 8         <书名>论吃</书名>
 9         <作者>zhd</作者>
10         <批发价>5元</批发价>
11         <售价>10元</售价>
12
13     </书>
14 </书架>

转载于:https://www.cnblogs.com/liuyangv/p/8005392.html

org.w3c.dom。 XML解析 练习相关推荐

  1. 分享一个 org.w3c.dom XML 封装

    之前解析 XML 大多在网页中完成.如果切换到 Java 中可能是 Dom4j 或者其他.不过对于一些小 Case,JDK 自带的 Dom 就可以了,而且可以省掉第三方 JAR,何乐不为呢?于是我参照 ...

  2. java dom获取命名空间属性_Java DOM XML解析::获取元素属性值

    如何从元素中提取属性值.我的xml节点是这样写的 &LT nodename attribute ="value">我需要将其解压缩以将其与另一个字符串进行比较. 但由 ...

  3. php dom xml解析,Php Xml解析之DOMDocument使用方法浅解

    Php Xml解析之DOMDocument使用方法浅解 用到的XML文件还以"Php Xml处理之simplexml使用方法浅谈"一文中的XML为例,文件名为:me.xml.代码如 ...

  4. php dom xml解析,PHP使用DOM解析XML

    xml是一种严格的文档格式,有其自身的标准,解析xml,也有其标准,叫DOM标准.所有的xml.html都遵循DOM标准. 无论php,java,c,js,解析DOM树都遵循同样的DOM标准. 使用p ...

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

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

  6. java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用org.w3c.dom(java dom)解析XML文档,创建.增删查改,保存,读取,遍历元素等操作 在保存文件时需要载入crimso ...

  7. JavaXml教程(二)使用DOM方式解析XML文件

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

  8. java w3c xml_org.w3c.dom(java dom)解析XML文档

    首先来了解点Java DOM 的 API: 1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBui ...

  9. Java之XML解析-使用dom(org.w3c.dom)解析XML

    转自: Java之XML解析-使用dom(org.w3c.dom)解析XML 下文笔者将讲述使用W3C(org.w3c.dom)提供的接口,解析XML文档的方法分享 W3C解析xml文档的方法:将整个 ...

最新文章

  1. JAVA:控制台输入问题
  2. 2014-3-9 星期天[周末计划实施总结]
  3. docker mysql日志写入本地_Docker Compose搭建MySQL主从复制集群
  4. Python eval函数用法简介
  5. linux下的动态链接库和静态链接库到底是个什么鬼?(一)静态链接库的编译与使用...
  6. RedisTemplate常用集合使用说明-opsForList(三)
  7. MQ如何防止消息丢失
  8. 缓存问题引发的一系列优化
  9. ubuntu 14.04 64bit 安装 oracle 11g r2
  10. WPF教程(二)Binding
  11. PHP将GD库生成的图片输出到字节流及创建临时文件
  12. 测试用例设计方法---场景法
  13. 《东周列国志》第七十六回 楚昭王弃郢西奔 伍子胥掘墓鞭尸
  14. 最大连通分支Giant Component
  15. android右上、右下、左上、左下手势滑动判断
  16. vue使用高德地图实现实时天气预报功能
  17. mysql用sql新增字段
  18. 关于spoolsv.exe程序问题
  19. mini2440 的 leds的驱动程序
  20. 模拟支付宝、淘宝登录1

热门文章

  1. 中信银行计算机岗位面试自我介绍,中信银行面试自我介绍
  2. 网站维护怎么做?网站维护内容有哪些
  3. 考研英语从句详细总结
  4. 名词用作动词举例_英语中名词做动词用的55个例句
  5. php接口统计,EKL PHP 调取_search接口查询登录统计
  6. python 仪表盘 ppt_Python之pyecharts数据可视化,词云图,仪表盘!
  7. 转:无损压缩和有损压缩
  8. 《设计模式》(精华集)
  9. PhotoSweeper X (重复照片清理工具)
  10. 用数组实现一个队列改进版