org.w3c.dom。 XML解析 练习
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解析 练习相关推荐
- 分享一个 org.w3c.dom XML 封装
之前解析 XML 大多在网页中完成.如果切换到 Java 中可能是 Dom4j 或者其他.不过对于一些小 Case,JDK 自带的 Dom 就可以了,而且可以省掉第三方 JAR,何乐不为呢?于是我参照 ...
- java dom获取命名空间属性_Java DOM XML解析::获取元素属性值
如何从元素中提取属性值.我的xml节点是这样写的 < nodename attribute ="value">我需要将其解压缩以将其与另一个字符串进行比较. 但由 ...
- php dom xml解析,Php Xml解析之DOMDocument使用方法浅解
Php Xml解析之DOMDocument使用方法浅解 用到的XML文件还以"Php Xml处理之simplexml使用方法浅谈"一文中的XML为例,文件名为:me.xml.代码如 ...
- php dom xml解析,PHP使用DOM解析XML
xml是一种严格的文档格式,有其自身的标准,解析xml,也有其标准,叫DOM标准.所有的xml.html都遵循DOM标准. 无论php,java,c,js,解析DOM树都遵循同样的DOM标准. 使用p ...
- java dom xml解析和windows dom解析的差别
1.java dom 子节点包括空节点. 2.java dom 文档节点值也是其的子节点. 而windows dom(mshtml.dll)子节点不包括空节点,而节点值也不是以子节点的方式来对待的.
- java使用org.w3c.dom解析XML文档,创建、增删查改,保存,读取,遍历元素等操作
全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用org.w3c.dom(java dom)解析XML文档,创建.增删查改,保存,读取,遍历元素等操作 在保存文件时需要载入crimso ...
- JavaXml教程(二)使用DOM方式解析XML文件
DOM XML 解析方式是最容易理解的,它將XML文件作为Document对象读取到内存中,然后你可以轻松地遍历不同的元素和节点对象.遍历元素和节点不需要按照顺序进行. DOM解析方式适合尺寸较小的X ...
- java w3c xml_org.w3c.dom(java dom)解析XML文档
首先来了解点Java DOM 的 API: 1.解析器工厂类:DocumentBuilderFactory 创建的方法:DocumentBuilderFactory dbf = DocumentBui ...
- Java之XML解析-使用dom(org.w3c.dom)解析XML
转自: Java之XML解析-使用dom(org.w3c.dom)解析XML 下文笔者将讲述使用W3C(org.w3c.dom)提供的接口,解析XML文档的方法分享 W3C解析xml文档的方法:将整个 ...
最新文章
- JAVA:控制台输入问题
- 2014-3-9 星期天[周末计划实施总结]
- docker mysql日志写入本地_Docker Compose搭建MySQL主从复制集群
- Python eval函数用法简介
- linux下的动态链接库和静态链接库到底是个什么鬼?(一)静态链接库的编译与使用...
- RedisTemplate常用集合使用说明-opsForList(三)
- MQ如何防止消息丢失
- 缓存问题引发的一系列优化
- ubuntu 14.04 64bit 安装 oracle 11g r2
- WPF教程(二)Binding
- PHP将GD库生成的图片输出到字节流及创建临时文件
- 测试用例设计方法---场景法
- 《东周列国志》第七十六回 楚昭王弃郢西奔 伍子胥掘墓鞭尸
- 最大连通分支Giant Component
- android右上、右下、左上、左下手势滑动判断
- vue使用高德地图实现实时天气预报功能
- mysql用sql新增字段
- 关于spoolsv.exe程序问题
- mini2440 的 leds的驱动程序
- 模拟支付宝、淘宝登录1