- 浏览: 364507 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (760)
- 股票日志 (26)
- Selenium (0)
- selenium 2 环境的搭建 (1)
- 并发 (7)
- 框架开发 (1)
- 动态代理 (2)
- Struts2 (2)
- POI (2)
- jdk (3)
- maven (31)
- spring (35)
- mysql (31)
- 工作机会 (3)
- xtream (1)
- oracle dbms_metadata GET_DDL (0)
- SSI (1)
- DB (61)
- powermock (4)
- java 基础 (25)
- 多线程 (11)
- 高手 (2)
- java 底层 (2)
- 专业网站 (1)
- 开发联想 (1)
- 开发联想 (1)
- bat文件 (2)
- 清queue 语句 (1)
- 清queue 语句 (1)
- jquery (7)
- html5 (1)
- Jenkins (10)
- Linux (17)
- 工作issue (2)
- tomcat log (3)
- jvm (23)
- 项目细节 (0)
- oracle (41)
- 泛型 (3)
- 新知识点 (1)
- 数据库ddl 语句 (0)
- AQ (2)
- jms (0)
- 网络资源 (6)
- github (6)
- Easymock (1)
- Dom 解析XML (1)
- windows命令 (2)
- java (7)
- 正则表达式 (5)
- sequence (1)
- oracle 表meta信息 (1)
- 小工具技巧 (1)
- 辅助工具 (1)
- Junit (1)
- 泛型 generic (2)
- Java程序设计 (1)
- cglib (2)
- 架构师之路 (1)
- 数据库连接池 (5)
- c3p0 (1)
- eclipse使用 (1)
- oracle sql plus (1)
- 码农人生 (3)
- SVN (15)
- sqlplus (2)
- jsoup (1)
- 网络爬虫 (2)
- 新技能 (1)
- zookeeper (4)
- hadoop (1)
- SVNKIT (1)
- 从工具到知识点的整理 (1)
- log4j (13)
- 读文件 (0)
- 转义字符 (1)
- command (1)
- web service (3)
- 锁 (1)
- shell 脚本 (1)
- 遇到的错误 (2)
- tomcat (14)
- 房产 (5)
- bootstrap jquery ui (1)
- easyui (2)
- 个人征信 (1)
- 读写分离 (1)
- 备份 (1)
- rmi (6)
- webservice (1)
- JMX (4)
- 内存管理 (3)
- java设计 (1)
- timer (1)
- lock (2)
- concurrent (2)
- collection (1)
- tns (1)
- java基础 (15)
- File (1)
- 本机资源 (1)
- bat (1)
- windows (4)
- 数据结构 (3)
- 代码安全 (1)
- 作用域 (1)
- 图 (2)
- jvm内存结构 (1)
- 计算机思想 (1)
- quartz (6)
- Mongo DB (2)
- Nosql (4)
- sql (5)
- 第三方Java 工具 jar 项目 (2)
- drools (1)
- java swing (2)
- 调用console (1)
- runtime (1)
- process (1)
- swing (2)
- grouplayout (1)
- dubbo (0)
- bootstrap (0)
- nodejs (2)
- SVN hooks (1)
- jdbc (3)
- jdbc error (1)
- precedure (1)
- partition_key (1)
- active mq (1)
- blob (2)
- Eclipse (6)
- web server (1)
- bootstrapt (2)
- struts (1)
- ajax (1)
- js call back (1)
- 思想境界拓展 (1)
- JIRA (1)
- log (1)
- jaxb (3)
- xml java互相转换 (1)
- 装修 (2)
- 互联网 (2)
- threadlocal (3)
- mybatis (22)
- xstream (1)
- 排序 (1)
- 股票资源 (1)
- RPC (2)
- NIO (3)
- http client (6)
- 他人博客 (1)
- 代理服务器 (1)
- 网络 (2)
- web (1)
- 股票 (5)
- deadlock (1)
- JConsole (2)
- activemq (3)
- oralce (1)
- 游标 (1)
- 12月13日道富内部培训 (0)
- grant (1)
- 速查 (2)
- classloader (4)
- netty (4)
- 设计模式 (2)
- 缓存 (2)
- ehcache (2)
- framework (1)
- 内存分析 (2)
- dump (1)
- memory (2)
- 多高线程,并发 (1)
- hbase (2)
- 分布式系统 (1)
- socket (3)
- socket (1)
- 面试问题 (1)
- jetty (2)
- http (2)
- 源码 (1)
- 日志 (2)
- jni (1)
- 编码约定 (1)
- memorycache (1)
- redis (13)
- 杂谈 (1)
- drool (1)
- blockingqueue (1)
- ScheduledExecutorService (1)
- 网页爬虫 (1)
- httpclient (4)
- httpparser (1)
- map (1)
- 单例 (1)
- synchronized (2)
- thread (1)
- job (1)
- hashcode (1)
- copyonwriteArrayList (2)
- 录制声音 (1)
- java 标准 (2)
- SSL/TLS (1)
- itext (1)
- pdf (1)
- 钻石 (2)
- sonar (1)
- unicode (1)
- 编码 (4)
- html (1)
- SecurityManager (1)
- 坑 (1)
- Restful (2)
- svn hook (1)
- concurrentHashMap (1)
- 垃圾回收 (1)
- vbs (8)
- visual svn (2)
- power shell (1)
- wmi (3)
- mof (2)
- c# (1)
- concurrency (1)
- 劳动法 (1)
- 三国志游戏 (2)
- 三国 (1)
- 洪榕 (2)
- 金融投资知识 (1)
- motan (1)
- tkmybatis mapper (1)
- 工商注册信息查询 (1)
- consul (1)
- 支付业务知识 (2)
- 数据库备份 (1)
- 字段设计 (1)
- 字段 (1)
- dba (1)
- 插件 (2)
- PropEdit插件 (1)
- web工程 (1)
- 银行业知识 (2)
- 国内托管银行 (1)
- 数据库 (1)
- 事务 (2)
- git (18)
- component-scan (1)
- 私人 (0)
- db2 (14)
- alias (1)
- 住房 (1)
- 户口 (1)
- fastjson (1)
- test (6)
- RSA (2)
- 密钥 (1)
- putty (1)
- sftp (1)
- 加密 (1)
- 公钥私钥 (3)
- markdown (1)
- sweet (1)
- sourcetree (1)
- 好工具 (1)
- cmd (1)
- scp (1)
- notepad++ (1)
- ssh免密登录 (1)
- https (1)
- ssl (2)
- js (2)
- h2 (1)
- 内存 (2)
- 浏览器 (1)
- js特效 (1)
- io (1)
- 乱码 (1)
- 小工具 (1)
- 每周技术任务 (1)
- mongodb (7)
- 内存泄漏 (1)
- 码云 (2)
- 如何搭建java 视频服务器 tomcat (1)
- 资源 (1)
- 书 (1)
- 四色建模法 (1)
- 建模 (1)
- 配置 (1)
- 职位 (1)
- nginx (1)
- excel (1)
- log4j2 (2)
- 做菜 (1)
- jmap (1)
- jspwiki (1)
- activiti (1)
- 工作流引擎 (1)
- 安卓 (1)
- acitviti 例子 (1)
- 二维码 (1)
- 工作流 (1)
- powerdesign (2)
- 软件设计 (1)
- 乐观锁 (1)
- 王者荣耀 (1)
- session (2)
- token (5)
- cookie (4)
- springboot (24)
- jwt (2)
- 项目路径 (1)
- magicbook (1)
- requestType (1)
- json (2)
- swagger (1)
- eolinker (1)
- springdata (1)
- springmvc (1)
- controlleradvice (1)
- profile (1)
- 银行四要素 (1)
- 支付人员资源 (1)
- 支付渠道 (1)
- yaml (1)
- 中文编码 (1)
- mongo (2)
- serializable (1)
- 序列化 (1)
- zyd (1)
- unittest (1)
- 工具 (1)
- Something (1)
- 通达信 (1)
- protobuf (1)
- 算法 (1)
- springcloud (2)
- hikari (1)
- rocketmq (7)
- cachecloud (1)
- serfj (1)
- axure (1)
- lombok (1)
- 分布式锁 (1)
- 线程 (2)
- 同步代码块 (1)
- cobar (1)
- mq (1)
- rabbitmq (1)
- 定时执行 (1)
- 支付系统 (3)
- 唱歌 (1)
- elasticjob (1)
- 定时任务 (1)
- 界面 (1)
- flink (2)
- 大数据 (1)
- 接私活 (0)
- 内部培训 (2)
最新评论
-
dannyhz:
做股票从短线 试水,然后 慢慢发现 波段和 中期的故事可挖, ...
搭台唱戏 -
dannyhz:
http://developer.51cto.com/art/ ...
如何自己开发框架 它的注意点是什么
//Java解析xml、解析xml四种方法、DOM、SAX、JDOM、DOM4j、XPath
//DOM
//其处理方式是将 XML 整个作为类似树结构的方式读入内存中以便操作及解析,因此支持应用程序对 XML 数据的内容和结构进行修改,
//但是同时由于其需要在处理开始时将整个 XML 文件读入到内存中去进行分析,
//因此其在解析大数据量的 XML 文件时会遇到类似于内存泄露以及程序崩溃的风险,请对这点多加注意。
//XML DOM将XML文档作为树结构,树结构称为一个节点树
//1)Element类:
//是Node类最主要的子对象,被广泛使用,在元素中可以包含属性,因而Element中有存取其属性的方法。
//2)Node类:
//Node对象是DOM中最基本的对象,代表了文档树中的抽象节点。但在实际使用中很少会直接使用Node对象,而是使用Node对象的子对象Element,Attr,Text等。
//3)NodeList类:
//代表了一个包含一个或者多个Node的列表,根据操作可以将其简化的看做为数组。
//先创建一个实例 , 1. DocumentBuilderFactory.newInstance()
//在创建一个DocumentBuilder, 2. DocumentBuilder builder = dbf.newDocumentBuilder();
//用classLoader 来得到resource stream , 一个InputStream
//用 DocumentBuilder builder 来解析inputStream,得到一个Document , 因为Dom就是 一个树状的数据集
//doc.getDocumentElement() 得到root Element , element 是最主要的使用对象,是Node类的子对象
// NodeList tileNodeList = root.getElementsByTagName("Tile"); 得到root节点 某个 element Tag的所有element
// System.err.println("\t" + controlNode.getAttributes().getNamedItem("name").getNodeValue()); 得到节点的 属性,根据属性的名字来得到具体的值
// System.err.print("\t" + controlNode.getAttributes().getNamedItem("flag").getNodeValue());
// NodeList childList = tileNode.getElementsByTagName("page"); //还可以得到某个tag的所有节点,当然是在tileNode节点之下的。
// pageNode.getTextContent() 还能得到某个节点的text内容 <page name="p2">page2</page>
//修改节点
// 新增节点
//Element addCollege = doc.createElement("college"); 创建一个Element ,
//addCollege.setAttribute("name", "c5"); 塞入一个属性
//root.appendChild(addCollege); 父节点加入子节点
//Text text = doc.createTextNode("text"); 创建text属性, 放入子节点中
//addCollege.appendChild(text);
//保存dom
//TransformerFactory transFactory = TransformerFactory.newInstance(); 修改也有个修改的factory
//Transformer transFormer = transFactory.newTransformer(); 从factory 得到一个 transformer
//DOMSource domSource = new DOMSource(doc); 把修改好的document 放入一个DOMSource
//File file = new File("src/dom-modify.xml"); 生成一个文件 ,
//if (file.exists()) {
// file.delete();
//}
//file.createNewFile();
//FileOutputStream out = new FileOutputStream(file); 得到一个文件的输出流
//StreamResult xmlResult = new StreamResult(out); 用StreamResult 来包装这个输出流
//transFormer.transform(domSource, xmlResult); 用transformer 来转化这个 DOMSource 和 实际路径的文件。 把dom 放入 物理文件了。
//DOM
//其处理方式是将 XML 整个作为类似树结构的方式读入内存中以便操作及解析,因此支持应用程序对 XML 数据的内容和结构进行修改,
//但是同时由于其需要在处理开始时将整个 XML 文件读入到内存中去进行分析,
//因此其在解析大数据量的 XML 文件时会遇到类似于内存泄露以及程序崩溃的风险,请对这点多加注意。
//XML DOM将XML文档作为树结构,树结构称为一个节点树
//1)Element类:
//是Node类最主要的子对象,被广泛使用,在元素中可以包含属性,因而Element中有存取其属性的方法。
//2)Node类:
//Node对象是DOM中最基本的对象,代表了文档树中的抽象节点。但在实际使用中很少会直接使用Node对象,而是使用Node对象的子对象Element,Attr,Text等。
//3)NodeList类:
//代表了一个包含一个或者多个Node的列表,根据操作可以将其简化的看做为数组。
//先创建一个实例 , 1. DocumentBuilderFactory.newInstance()
//在创建一个DocumentBuilder, 2. DocumentBuilder builder = dbf.newDocumentBuilder();
//用classLoader 来得到resource stream , 一个InputStream
//用 DocumentBuilder builder 来解析inputStream,得到一个Document , 因为Dom就是 一个树状的数据集
//doc.getDocumentElement() 得到root Element , element 是最主要的使用对象,是Node类的子对象
// NodeList tileNodeList = root.getElementsByTagName("Tile"); 得到root节点 某个 element Tag的所有element
// System.err.println("\t" + controlNode.getAttributes().getNamedItem("name").getNodeValue()); 得到节点的 属性,根据属性的名字来得到具体的值
// System.err.print("\t" + controlNode.getAttributes().getNamedItem("flag").getNodeValue());
// NodeList childList = tileNode.getElementsByTagName("page"); //还可以得到某个tag的所有节点,当然是在tileNode节点之下的。
// pageNode.getTextContent() 还能得到某个节点的text内容 <page name="p2">page2</page>
//修改节点
// 新增节点
//Element addCollege = doc.createElement("college"); 创建一个Element ,
//addCollege.setAttribute("name", "c5"); 塞入一个属性
//root.appendChild(addCollege); 父节点加入子节点
//Text text = doc.createTextNode("text"); 创建text属性, 放入子节点中
//addCollege.appendChild(text);
//保存dom
//TransformerFactory transFactory = TransformerFactory.newInstance(); 修改也有个修改的factory
//Transformer transFormer = transFactory.newTransformer(); 从factory 得到一个 transformer
//DOMSource domSource = new DOMSource(doc); 把修改好的document 放入一个DOMSource
//File file = new File("src/dom-modify.xml"); 生成一个文件 ,
//if (file.exists()) {
// file.delete();
//}
//file.createNewFile();
//FileOutputStream out = new FileOutputStream(file); 得到一个文件的输出流
//StreamResult xmlResult = new StreamResult(out); 用StreamResult 来包装这个输出流
//transFormer.transform(domSource, xmlResult); 用transformer 来转化这个 DOMSource 和 实际路径的文件。 把dom 放入 物理文件了。
import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerConfigurationException; import javax.xml.transform.TransformerException; 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; import org.w3c.dom.Text; import org.xml.sax.SAXException; public class DomXmlParser { public static void main(String[] args) { read(); //write(); } public static void read() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = dbf.newDocumentBuilder(); InputStream in = DomXmlParser.class.getClassLoader().getResourceAsStream("XmlSample.xml"); Document doc = builder.parse(in); // root Element root = doc.getDocumentElement(); if (root == null) return; System.err.println(root.getAttribute("name")); // all 'Control' node NodeList controlNodeList = root.getElementsByTagName("Control"); //Control node 数目 System.out.println(controlNodeList.getLength()); for(int i = 0; i < controlNodeList.getLength(); i++) { Node controlNode = controlNodeList.item(i); if (controlNode != null && controlNode.getNodeType() == Node.ELEMENT_NODE) { System.err.println("\t" + controlNode.getAttributes().getNamedItem("name").getNodeValue()); System.err.print("\t" + controlNode.getAttributes().getNamedItem("flag").getNodeValue()); } } NodeList tileNodeList = root.getElementsByTagName("Tile"); for(int i = 0; i < tileNodeList.getLength(); i++) { Element tileNode = (Element)tileNodeList.item(i); NodeList childList = tileNode.getElementsByTagName("page"); for(int j = 0; j < childList.getLength(); j++){ Element pageNode = (Element)childList.item(j); System.out.println(pageNode.getAttributes().getNamedItem("name").getNodeValue()); System.out.println("value = " + pageNode.getTextContent()); } } } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public static void write() { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); try { DocumentBuilder builder = dbf.newDocumentBuilder(); InputStream in = DomXmlParser.class.getClassLoader().getResourceAsStream("XmlSample.xml"); Document doc = builder.parse(in); // root <university> Element root = doc.getDocumentElement(); if (root == null) return; // 修改属性 root.setAttribute("name", "tsu"); NodeList collegeNodes = root.getChildNodes(); if (collegeNodes != null) { for (int i = 0; i <collegeNodes.getLength() - 1; i++) { // 删除节点 Node college = collegeNodes.item(i); if (college.getNodeType() == Node.ELEMENT_NODE) { String collegeName = college.getAttributes().getNamedItem("name").getNodeValue(); if ("c1".equals(collegeName) || "c2".equals(collegeName)) { root.removeChild(college); } else if ("c3".equals(collegeName)) { Element newChild = doc.createElement("class"); newChild.setAttribute("name", "c4"); college.appendChild(newChild); } } } } // 新增节点 Element addCollege = doc.createElement("college"); addCollege.setAttribute("name", "c5"); root.appendChild(addCollege); Text text = doc.createTextNode("text"); addCollege.appendChild(text); // 将修改后的文档保存到文件 TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer transFormer = transFactory.newTransformer(); DOMSource domSource = new DOMSource(doc); File file = new File("src/dom-modify.xml"); if (file.exists()) { file.delete(); } file.createNewFile(); FileOutputStream out = new FileOutputStream(file); StreamResult xmlResult = new StreamResult(out); transFormer.transform(domSource, xmlResult); System.out.println(file.getAbsolutePath()); } catch (ParserConfigurationException e) { e.printStackTrace(); } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (TransformerConfigurationException e) { e.printStackTrace(); } catch (TransformerException e) { e.printStackTrace(); } } }
<?xml version="1.0" encoding="UTF-8"?> <Struts> <Control name="c1" flag="true">firstControl</Control> <View name="v1">firstView</View> <Tile> <page name="p1">page1</page> <page name="p2">page2</page> </Tile> </Struts>
相关推荐
DOM解析XML文件例子DOM解析XML文件例子DOM解析XML文件例子
java dom解析xml <?xml version="1.0" encoding="UTF-8"?> <Head> <FileVersion>010000</FileVersion> <FileLength>00000CC3</FileLength> <FileTime>20100629173405</FileTime> <KeyIndex>1...
java dom 解析 xml 实例 介绍w3c中的元素的用法,以及在解析xml过程中用到的API进行详细解释
用dom解析xml文件
在Java平台中如何来使用DOM解析xml文件,
DOM解析XML应用实例(入门经典案例),直接在Myeclipse值导入即可运行
android为我们提供了多种解析方式,DOM解析,代码操作简单,一直为解析xml文件的一个不错的选择
Android使用Dom方式解析XML,虽然xml文件太大时不建议用dom方式解析,但是如果文件比较小,也不失为一种选择。项目中xml放在assets文件夹下,view绑定使用butterknife
dom解析XML dom解析XML dom解析XMLdom解析XML dom解析XML
DOM解析XML 创建XML
使用dom解析XML,演示了如何使用DOM的五个基本对象来解析xml。
java学习笔记——使用DOM解析XML和使用SAX解析XML
DOM解析XML文档DOM解析XML文档DOM解析XML文档
包括android代码实例以及个人对Dom解析xml文件的总结文档。
以一个实例来说明DOM解析XML文件的方法与过程。
很实用的一个dom解析xml实例,很容易上手
完整的Oracle xmldom解析xml入参,经过测试,可以解析,成功入到数据表中。
使用DOM解析XML
DOM解析XML
android上使用DOM解析XML的简单示例。android4.0以上。