开篇注意,由于解析有可能有大文件非常耗时,建议另开一个线程解析也可以不开具体视情况而定
 
 
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. 通过maven创建自己的archetype

    最近项目组做好一套框架,为了推广需要创建一些空白项目给项目组使用,因为所有的空白项目里面的配置基本上都是一样的,为了减少重复工作,想通过maven创建一个自己的archetype,于是在网上大致搜了一 ...

  2. Java中,&&与&;||与|的区别

    我们很多人在学习Java的时候,或者其他语言(如:C#,.Net等)都会遇到&和&&,|和||.然而,如果你没有真正理解他们的意思,这回给你的思路上带来很大的麻烦.在Java的 ...

  3. html5 百分比计算

    这几天一直在看html5,看到了百分比的计算公式:目标元素的尺寸/上下文元素的尺寸=百分比尺寸.看到这个公式,有点懂,但是有不明白.对于目标元素很容易理解,但是对于上下文元素就不是很好理解了.试了一些 ...

  4. Scala学习笔记--抽象成员

    package com.evor.test1 class Test1 { } object Test1{ def main(args:Array[String]):Unit = { //类参数和抽象字 ...

  5. hdu 1255 覆盖的面积

    http://acm.hdu.edu.cn/showproblem.php?pid=1255 #include <cstdio> #include <cstring> #inc ...

  6. 一颗 45nm CPU的制造过程

    沙子 :硅是地壳内第二丰富的元素,而脱氧后的沙子(尤其是石英)最多包含25%的硅元素,以二氧化硅(SiO2)的形式存在,这也是半导体制造产业的基础. 硅熔炼: 12英寸/300毫米晶圆级,下同.通过多 ...

  7. keil c51 本變數型態(Variable Type)

    本變數型態(Variable Type): 類 別 符號位元 位元組(bytes) 表 示 法 數 值 範 圍 整 數 有 2 int(short) -32768~0~>32767 4 long ...

  8. 如何允许外网可以连接mysql数据库

    1.首先检查mysql所在服务器的防火墙,如果限制了外网对3306端口的连接,那么放开限制Linux服务器中执行 iptables -L   可以查看当前的防火墙规则iptables -F   可以清 ...

  9. 【转】Android源码学习(2)使用Git和Repo进行版本管理

    原文网址:http://blog.chinaunix.net/uid-26074270-id-2458828.html Android项目采用Git和Repo进行版本管理.在大多数情况下,Git都可以 ...

  10. tcpdump详细用法

    1.1 三种关键字     关于类型的关键字     第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,n ...