一:XML解析技术

一般我们使用sun公司或者开源组织开发的工具包解析xml效率比较高。

1:jaxp解析xml,jaxp是sun公司开发的解析xml工具包

2:jaxp解析xml代码如下

a:获取document文档树对象

 @Test
// 获取document对象
public void test1() throws Exception {
// 1:获取解析工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 2:获取解析对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 3:获取document对象
Document doc = builder.parse("xml/books.xml");
System.out.println(doc);
}
     // 获取document对象方法
private Document getDoc() throws Exception {
// 1:获取解析工厂对象
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// 2:获取解析对象
DocumentBuilder builder = factory.newDocumentBuilder();
// 3:获取document对象
Document doc = builder.parse("xml/books.xml");
return doc;
}

b:获取元素节点

 @Test
// 获取xml中的元素内容
public void test2() throws Exception {
Document doc = getDoc();
NodeList lists = doc.getElementsByTagName("name");
Node node = lists.item(0);
System.out.println("名称:" + node.getNodeName() + "\n内容:"
+ node.getTextContent());
}

c:递归遍历xml文件中所有节点

 @Test
// 遍历所有的节点 递归
public void test3() throws Exception {
Document doc = getDoc();
Node node = doc.getElementsByTagName("bookstore").item(0);
list(node);
} private void list(Node node) {
if (node instanceof Element) {
System.out.println(node.getNodeName());
}
NodeList list = node.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
list(list.item(i));
}
}

d:获取元素属性

 @Test
// 获取元素属性
public void test4() throws Exception {
Document doc = getDoc();
Element element = (Element) doc.getElementsByTagName("book").item(0);
String name = element.getAttribute("name");
System.out.println("name:" + name);
}

如果Node节点对象的方法比较少是,可以使用子类Element的方法。

javaweb学习总结十(xml解析<SAX以及DOM方式>)的更多相关文章

  1. javaweb学习总结九(xml解析以及调整JVM内存大小)

    一:解析XML文件的两种方式 1:dom,document object model,文档对象模型. 2:sax,simple API for XML. 3:比较dom和sax解析XML文件的优缺点 ...

  2. javaweb学习总结十二(JAXP对XML文档进行SAX解析)

    一:JAXP使用SAX方式解析XML文件 1:dom解析与sax解析异同点 2:sax解析特点 二:代码案例 1:xml文件 <?xml version="1.0" enco ...

  3. Javaweb学习笔记——使用Jdom解析xml

    一.前言 Jdom是什么? Jdom是一个开源项目,基于树形结构,利用纯java的技术对XML文档实现解析,生成,序列化以及多种操作.它是直接为java编程服务,利用java语言的特性(方法重载,集合 ...

  4. android学习日记23--Android XML解析

    一.简述 XML语言是跨平台,JAVA对XML语言支持得比较好,android系统的应用层平台是JAVA做的,所以用XML.XML解析比较简单.XML解析就是将获取到的数据分离出来,基本的网络数据传输 ...

  5. android xml解析 sax

    1.简要概述 Android 各种文件都是xml格式的,还有标准的webservice返回的是xml文件,虽然现在的json使用在移动设备端越来越广泛,但是xml格式的解析感觉还是相当必要. 2.sa ...

  6. Android中XML解析-SAX解析

    昨天由于时间比较匆忙只写了Android中的XML解析的Dom方式,这种方式比较方便,很容易理解,最大的不足就是内容多的时候,会消耗内存.SAX(Simple API for XML)是一个解析速度快 ...

  7. 【Javaweb学习笔记】XML和约束模式

    一.XML语法 xml 可扩展标记语言,w3c组织发布的,用于保存有关系的数据,作为配置文件,描述程序模块之间的关系 xml 文件开头必须包括下面的标签: <?xml version=" ...

  8. XML学习笔记——关于XML解析器

    本篇文章基于W3C而写 在Firefox及其他浏览器中的XML解析器(除IE) var xmlDoc=document.implementation.createDocument("&quo ...

  9. xml 解析的四种方式

    =========================================xml文件<?xml version="1.0" encoding="GB2312 ...

随机推荐

  1. matlab search path

    What Is the MATLAB Search PathThe search path, or path is a subset of all the folders in the file sy ...

  2. Hadoop应用开发实战案例 第1周

    本课程的基础课程是,Hadoop数据分析平台课程.相信,能看我本博文的朋友,是有一定的基础了. 只是前个课程是讲解,这个课程是应用. 第一层是:数据源层,代表有生产线上的数据,比如关系型数据库orca ...

  3. 2048-AI程序算法分析

    转自:CodingLabs 针对目前火爆的2048游戏,有人实现了一个AI程序,可以以较大概率(高于90%)赢得游戏,并且作者在stackoverflow上简要介绍了AI的算法框架和实现思路.但是这个 ...

  4. 客户端接口AGENDA

    日程 周二上午:完善客户端功能.接口定义. 周二下午:助教审查客户端代码.审查完成之后将发布接口定义. 提示 总之谢谢大家的支持.我们会尽量降低交互难度,让各位亲把精力专注于算法设计上面. 可以使用任 ...

  5. BUILD_BUG_ON 的解释

    知乎上个问题<C 语言有什么奇技淫巧?>排名第一的是一个“抖机灵”的答案. C有一个鲜为人知的运算符叫”趋向于”, 写作“-->”.比如说如果要实现一个倒数的程序,我们可以定义一个变 ...

  6. #maven系列(4)-maven插件的介绍

    1. 简介 在Maven设计中,实际的任务都是交由插件完成的,这种思想和设计模式中的模板方法非常类似,模板方法模式在父类中定义算法的整体结构,子类可以通过实现或者重写父类的方法来控制实际的行为,这样既 ...

  7. poj 1236 Network of Schools(连通图入度,出度为0)

    http://poj.org/problem?id=1236 Network of Schools Time Limit: 1000MS   Memory Limit: 10000K Total Su ...

  8. 【三支火把】---CDS5516舵机调试以及自己的感想!

    我依然坚持,任何一次自己的心有感触都要及时的记录下来,这样你的努力才是真正的努力. 这两天一直在用STM32调试CDS5516舵机,其实很简单,但是却花了将近两天的时间,过程之曲折我就不说了,先总结一 ...

  9. rqnoj-396-SY学语文-dp

    纯动态规划. 注意初始化为-INF #include<stdio.h> #include<algorithm> #include<iostream> #includ ...

  10. ORA-01033: ORACLE initialization or shutdown in progress 实用的处理方法

    ORA-01033: ORACLE initialization or shutdown in progress 实用的处理方法,此问题通常是由于电脑非正常关机造成的,我们可以用下面的方法查找出是那个 ...