文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么用Java结合SAX 2.0 解析XML文档

2023-06-03 03:06

关注

这篇文章主要为大家展示了“怎么用Java结合SAX 2.0 解析XML文档”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么用Java结合SAX 2.0 解析XML文档”这篇文章吧。

import org.w3c.dom.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;
import javax.xml.parsers.*;

class MyXMLReader extends DefaultHandler

 //Fields
 private int index;
 private Locator locator;

 //Constructor
 public MyXMLReader(){
 super(); //it must be done !
 }

 //nain method
 public static void main(String[] args){
 try{ 
  SAXParserFactory sf  = SAXParserFactory.newInstance();
  SAXParser sp = sf.newSAXParser();
  MyXMLReader reader = new MyXMLReader();
  sp.parse(new Inputsource("film.xml"),reader);
 }
 catch(Exception e){
 e.printStackTrace();
 }
 } 

 //Response the startDocument event
 public void startDocument() {
 System.out.println("n********************************* (: 元旦电影海报 :) ***********************************n");
 } 

//Response the startElement event
 public void startElement(String uri, String localName, String qName, Attributes attrs){ 
 if( qName.equalsIgnoreCase("film") ){ 
 index ++; 
 int attrCount = attrs.getLength();
 for( int i = 0; i < attrCount; i ++ ){
 String attrName = attrs.getQName(i);
 if( attrName.equalsIgnoreCase("name") ){
 System.out.println("t第" + index + "场,片名:<<" +  attrs.getValue(i) + ">>");
 }
 if( attrName.equalsIgnoreCase("price") ){
 System.out.println("t票价:" + attrs.getValue(i) ); 
 }
 if( attrName.equalsIgnoreCase("station") ){
 System.out.println("t放映地点:" + attrs.getValue(i) ); 
 }
 if( attrName.equalsIgnoreCase("time") ){
 System.out.println("t放映时间:" + attrs.getValue(i) );
 }
 if( attrName.equalsIgnoreCase("describtion") ){
 System.out.println("t影片简介:" + attrs.getValue(i) );
 }
 System.out.println();
 }
 }

 //Response the endDocument event
 public void endDocument(){
 System.out.println("ttttttt------ 共有" + index + "场电影要放映"); 
 }

 //Response the endElement event
 public void endElement(String uri, String localName, String qName){
   //add your codes if neccessary ...
 }

 //Print the fata error information
 public void fatalError(SAXParseException e){
 System.out.println("nFatal error information --&gt");
 System.out.println("t" + e.getMessage());
 System.out.println("tAt line " + locator.getLineNumber() +
  ",column " + locator.getColumnNumber());
 }
 
 //Print the usual error information
 public void error(SAXParseException e){
 System.out.println("nUsual error information --&gt"); 
 System.out.println("t" + e.getMessage());
 System.out.println("tAt line " + locator.getLineNumber() +
  ",column " + locator.getColumnNumber());
 }
 
 //Print the warning information
 public void warning(SAXParseException e){
 System.out.println("nWarning information --&gt"); 
 System.out.println("t" + e.getMessage()); 
 System.out.println("tAt line " + locator.getLineNumber() +
  ",column " + locator.getColumnNumber());
 }

 //Store the error locator object
 public void setDocumentLocator(Locator lct){
 locator = lct;
 }

}//End class MyXMLReader

附: film.xml完全的内容:


  <!-- 2003年元月1号长沙市各大影院落放映列表 --&gt
 
 <film name="英雄" price="30" station="田汉大剧场" time="19:00"
  describtion="国产最新大片,张艺谋导演,梁朝伟,张曼玉,李连杰等众多大明星主演">
 
 <film name="无间道" price="20" station="长沙市演艺中心" time="15:00"
  describtion="韩国大片">
 
 <film name="武士" price="20" station="湖南省电影院" time="17:00"
  describtion="韩国大片,有点像英雄">
  
 <film name="长排山之战" price="15" station="长沙市电影超市A1厅" time="19:00"
  describtion="反映对越自卫反击战时期中国军人的故事片">
   
 <film name="高山下的花环" price="15" station="长沙市电影超市A2厅" time="19:00"
  describtion="反映对越自卫反击战时期中国军人的故事片">
  
 <film name="这里的黎明静悄悄" price="15" station="长沙市电影超市A3厅" time="19:00"
  describtion="反映对越自卫反击战时期中国军人的故事片">
 
 <film name="子夜" price="15" station="长沙市电影超市B1厅" time="19:00"
  describtion="反映对越自卫反击战时期中国军人的故事片">
 
 

以上是“怎么用Java结合SAX 2.0 解析XML文档”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯