开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定
 
 
DOM生成
1.拿到Document的工厂实例化
DocumentBuilderFactory df =DocumentBuilderFactory.newInstance();
2.通过工厂实例化拿到Document的构造实力
DocumentBuilder db = df.newDocumentBuilder();
3.通过Document的构造实力拿到文档实例
Document dm = db.newDocument();
4..通过文档实例创建节点
Element rootElement = dm.createElement(节点的名Tag);
5.给节点设置属性
rootElement .setAttribute(属性名,属性值);
6.设置节点的关系(谁是谁的子元素)
dm..appendChild(根节点);其他的节点也可以这样设置子节点,前提是子节点已经加载完成或者设置完毕
7.输出到文件
7.1变压工厂实例
TransformerFactory tf = TransformerFactory.newInstance();
7.2拿到变压工厂
Transformer tm = tf.newTransformer();
7.3设置工厂的输出格式
tm.setOutputProperty(OutputKeys.ENCODING,"utf-8");//设置编码
7.4输出文档
DOMSource ds = new DOMSource(dm);
7.5设置文档输出位置(也就是路径)
StreamResult sr = new StreamResult(new File(getFilesDir().getPath()+"/mydoc.xml"));
7.6设置需要输出的文档,以及路径
tm.transform(ds, sr);
 
DOM解析
// 拿到document的工厂方法                               
DocumentBuilderFactory doc = DocumentBuilderFactory.newInstance();
// 拿到document的构建器
DocumentBuilder nb = doc.newDocumentBuilder();
// 加载需要解析的文件
Document parse = nb.parse(open);
// 拿到文件的根节点
Element root = parse.getDocumentElement();
//通过根节点拿到子节点的集合
NodeList pnl = root.getElementsByTagName("province");
//遍历节点的集合
for (int p = 0; p < pnl.getLength(); p++) {
//在遍历的过程中可以通过.item()放入下标的方式拿到单独的一个节点类型是一个Node类型然后转换为Element类型,因为Element继承了Node
Element ep = (Element) pnl.item(p);
}
中心点:Element拿到参数通过getAttribute(参数名)内容可以通过getTextContent()获取

DOM生成&解析的更多相关文章

  1. android之DOM生成与解析

    DOM解析不适合于进行大数据文件的操作,DOM解析适合于对文件进行修改和随机存取的操作. DOM生成 //判断一下是否存在sdcard if(!Environment.getExternalStora ...

  2. DOM生成XML文档与解析XML文档(JUNIT测试)

    package cn.liuning.test; import java.io.File; import java.io.IOException; import javax.xml.parsers.D ...

  3. Python:Dom生成XML文件(写XML)

    http://www.ourunix.org/post/327.html 在python中解析XML文件也有Dom和Sax两种方式,这里先介绍如何是使用Dom解析XML,这一篇文章是Dom生成XML文 ...

  4. 给DOM生成的元素添加事件

    问题:通过js给页面添加新元素,并给该元素添加绑定事件,但新添加的元素上却没有绑定任何事件. 常见例子:在处理表格的时候,每行行末有个删除按钮,如下图.点击删除按钮的时候删除这一行. //html部分 ...

  5. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

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

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

  7. Dom方式解析XML

    public class TestXML { public static void main(String[] args) throws SAXException, IOException { //D ...

  8. Android使用DOM生成和输出XML格式数据

    Android使用DOM生成和输出XML格式数据 本文主要简单解说怎样使用DOM生成和输出XML数据. 1. 生成和输出XML数据 代码及凝视例如以下: try { DocumentBuilderFa ...

  9. [开源]C#二维码生成解析工具,可添加自定义Logo (转)

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

随机推荐

  1. Jquery:强大的选择器<二>

    今天跟着资料做了一个示例,为什么我感觉自己做的没书上的好看呢?好吧,我承认自己对css样式只懂一点皮毛,我也不准备深度的去学习它,因为……公司有美工嘛! 这个小示例只是实现了元素的隐藏和显示.元素cl ...

  2. ORacle 复制表

    create table r_register_company as select companyid,companyname,from grdata.r_register_company inser ...

  3. 读取并解析properties文件

    public class SysConfig { private static final Properties properties = new Properties(); static{ Reso ...

  4. java Math.random()随机数的产生

    Math.random()是java内置产生随机数的函数,Math.random()能够产生[0,1)的浮点数,当我们要产生特定范围的数时,可以采用如下办法: 1.Math.random()*(最大数 ...

  5. UITableView 总结

    http://my.oschina.net/iq19900204/blog/292125

  6. hdu5344 MZL's xor(水题)

    转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud MZL's xor Time Limit: 2000/1000 MS (Java/ ...

  7. Java消息服务

    什么是消息? 消息是可编程实现两端通信的机制.通常的一些消息技术如:TCP/IP Sockets.管道.文件.共享存储. Java消息服务 Java消息服务,即Java Message Service ...

  8. 手把手教你如何使用webpack+react

    上一篇随笔讲述了新手入门入门前端 里面提到的第四阶段跟上当前前端的发展需要入门一个框架和自动化工具,当时推荐的是webpack+react 今天正好有空,也把自己入门webpack + react 的 ...

  9. 记一道css面试题 : 三栏布局两边宽度固定,中间宽度自适应,并且布局随屏幕大小改变。

    前几天面试时有道css题没做出来,回来好好学习一番后把其记录下来. 题目是这样的:左中右三栏布局,左右两栏宽度固定,左右两栏的宽度为200像素,中间栏宽度自适应.当屏幕小于600px时,3栏会分别占用 ...

  10. [C入门 - 游戏编程系列] 贪吃蛇篇(六) - 蛇实现

    这一篇是关于设置蛇的属性的,接上一篇(五). 设置蛇的速度,很简单,只要不是负数就行了. void SNK_SetSnakeSpeed(Snake *snake, int speed) { ) sna ...