studentInfo.xml

崔卫兵

PC学院

62354666

男,1982年生,硕士,现就读于北京邮电大学

cwb

PC学院

62358888

男,1987年生,硕士,现就读于中国农业大学

xxxxx

xxx学院

66666666

注视中,注释中

SAXHandler.java

package saxExample;

import java.util.HashMap;

import org.xml.sax.*;

import org.xml.sax.helpers.DefaultHandler;

/**

* 继承DefaultHandler类,用SAX实现对xml的遍历

* @author cuiweibing

* @since 2007.8.8

*/

public class SAXHandler

extends DefaultHandler {

//存放所有的节点(这里的节点等于原来的节点+编号)以及它所对应的值

private HashMap hashMap = new HashMap();

//目前的节点

private String currentElement = null;

//目前节点所对应的值

private String currentValue = null;

//用于节点编号(具体到person)

private static int i=-1;

public HashMap getHashMap() {

return hashMap;

}

public void characters(char[] ch, int start, int length) throws SAXException {

//取出目前节点对应的值

currentValue = new String(ch, start, length);

}

public void startElement(String uri, String localName, String qName,

Attributes attr) throws SAXException {

if(qName.equalsIgnoreCase("student")){

//currentElement= "";

}else if (qName.equalsIgnoreCase("person")){

i++;

//currentElement= "";

String age=attr.getValue("age");

if(age!=null){

hashMap.put(qName+"-age"+i, age);

}else{

hashMap.put(qName+"-age"+i, "20");

}

}else if (qName.equalsIgnoreCase("college")){

currentElement= qName;

String leader=attr.getValue("leader");

if(leader!=null){

hashMap.put(qName+"-leader"+i, leader);

}else{

hashMap.put(qName+"-leader"+i, "leader");

}

}else{

currentElement= qName;

}

}

public void endElement(String uri, String localName, String qName) throws SAXException {

if (qName.equalsIgnoreCase("student")){

//      hashMap.put(currentElement, currentValue);

}else if (qName.equalsIgnoreCase("person")){

}else{

currentElement+=i;

hashMap.put(currentElement, currentValue);

}

}

}TestSAXHandler.java

package saxExample;

import java.io.File;

import java.util.HashMap;

import javax.xml.parsers.SAXParserFactory;

import javax.xml.parsers.SAXParser;

/**

* 解析主类

* @author cuiweibing

* @since 2007.8.8

*/

public class TestSAXHandler {

public TestSAXHandler() {

}

public static void main(String[] args) {

try{

//初始化与解析

SAXHandler handler = new SAXHandler();

SAXParserFactory saxparserfactory = SAXParserFactory.newInstance();

SAXParser saxparser = saxparserfactory.newSAXParser();

saxparser.parse(new File("studentInfo.xml"), handler);

//解析完后获取解析信息

HashMap hashMap = handler.getHashMap();

System.out.println("姓名/t年龄/t学院/t学院领导/t电话/t/t备注");

for(int i=0;i

int j=i/6;

System.out.print(hashMap.get("name"+j)+"/t");

System.out.print(hashMap.get("person-age"+j)+"/t");

System.out.print(hashMap.get("college"+j)+"/t");

System.out.print(hashMap.get("college-leader"+j)+"/t");

System.out.print(hashMap.get("telephone"+j)+"/t");

System.out.println(hashMap.get("notes"+j)+"/t");

}

}catch(Exception ex){

ex.printStackTrace();

}

}

}

java自带的xml解析,使用Java自带SAX工具解析XML相关推荐

  1. Java中Xml解析详解 DOM、SAX、JDOM、DOM4J

    1.1 什么是XML 一种表示结构化信息的标准方法,以使计算机能够方便地使用此类信息,并且人们可以非常方便地编写和理解这些信息.XML 是 eXtensible Markup Language(可扩展 ...

  2. 练手/翻译软件/有道翻译API/XML解析/正则/Java

    初衷就是写个翻译软件,同时生成一个TXT的生词本,方便我导入手机上知米的单词本系统.调用了有道的API,申请起来还是很方便.用了dom4j去初步解析XML,再通过简单的正则删改字符串.最后就是个可以中 ...

  3. java jdom dom4j_Java基础系列17:使用DOM、SAX、JDOM、DOM4J解析XML文件详解

    一 简介 在Java中,可以使用多种方式来解析XML文件,其中最常见的可能就是DOM.SAX.JDOM.DOM4J这四种方式了.其中,DOM和SAX这两种解析XML文件的方式有jdk自带的API,因此 ...

  4. Java眼中的XML--文件读取--2 应用SAX方式解析XML

    1.获取一个SAXParserFactory的实例.2.通过factory获取SAXParser实例. 3.新建一个包和继承自DefaultHandler的类. 因为SAX遍历方式,比如便利一个节点& ...

  5. xml教程之java解析xml文档

    1.java解析xml文件介绍 XML解析方式分为两种:DOM方式和SAX方式 DOM:Document Object Model,文档对象模型.这种方式是W3C推荐的处理XML的一种方式. SAX: ...

  6. java使用SAX接口解析xml文件

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java使用SAX接口解析xml文件.实现解析类,从xml解析开始到结尾,每一步均会触发对象的重载函数. 测试代码,将book1.xml改成你自己 ...

  7. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  8. java解析xml 前言中不允许有内容_关于xml加载提示: Error on line 1 of document : 前言中不允许有内容...

    我是在java中做的相关测试, 首先粘贴下报错: 读取xml配置文件:xmls\property.xml org.dom4j.DocumentException: Error on line1of d ...

  9. 自己动手写搜索引擎(常搜吧历程五#解析文档之XML#)(Java、Lucene、hadoop)

    今天我们来进行对XML的学习. 认识XML XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized M ...

最新文章

  1. windows 7架设OpenSSH服务器实践
  2. 前端页面速度统计方法
  3. 《精通Hadoop》:第 1 章 Hadoop 2.X
  4. ID3DXMesh的数据导出和导入
  5. Goland设置Go相关环境
  6. 基于 Flink+Iceberg 构建企业级实时数据湖 | 附 PPT 下载
  7. cocos2d-x 中文 乱码问题
  8. 招远西苑学校计算机老师,招远市西苑学校积极开展综合实践活动
  9. 为什么移动卡上到手机上显示无服务器,移动手机卡加密失败然后就没有服务器无聊的时候给手机卡加密因为不知? 爱问知识人...
  10. python中exit的作用_python中,exit,return,sys.exit()等的区别与使用方法 | 学步园
  11. C#实现Word批量转换Pdf
  12. Java类加载与初始化机制实例分析
  13. ROS 清理log文件
  14. ”微服务一条龙“最佳指南-“最佳实践”篇:大厂服务端部署
  15. Ubuntu20.04ssh服务器和客户端配置
  16. 2023电工杯数学建模A题B题
  17. day7 日期对象定时器
  18. 局域网内配置可访问mysql数据库
  19. MarkDown 图片和链接
  20. discuz 单点登录 ucenter

热门文章

  1. Angular Injection Token records map的填充原理
  2. perform build_lc_user_stat
  3. 如何使用Prometheus采集SAP ABAP Netweaver的应用日志数据
  4. OPA 1 - testsuite.opa.html
  5. SAP UI5里sap.m.shell的实现
  6. ui5里周期性检查window size大小的变化
  7. WebSocket服务器端的日志重复打印问题
  8. CRM WebUI的错误消息是如何从后台服务器取出并绘制到前台的
  9. follow up transaction type determination
  10. 无法使用UI configuration的trouble shooting