博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java sax 解析 xml
阅读量:6225 次
发布时间:2019-06-21

本文共 2745 字,大约阅读时间需要 9 分钟。

代码:

import
 org.xml.sax.Attributes;
import
 org.xml.sax.SAXException;
import
 org.xml.sax.Locator;
import
 org.xml.sax.ContentHandler;
import
 org.xml.sax.InputSource;
import
 org.xml.sax.helpers.DefaultHandler;
import
 java.io.IOException;
import
 javax.xml.parsers.SAXParser;
import
 javax.xml.parsers.SAXParserFactory;
class
 TestSAX 
extends
 DefaultHandler
{
    
    
private
 StringBuffer buf;
    
private
 String str;
    
public
 TestSAX()
{
        
super
(); 
    }
    
//
    public void setDocumentLocator(Locator locator){}
    
    
public
 
void
 startDocument() 
throws
 SAXException
{
        buf
=
new
 StringBuffer();
        System.out.println(
"
*******开始解析文档*******
"
);
    }
    
    
public
 
void
 endDocument() 
throws
 SAXException
{        
        System.out.println(
"
*******文档解析结束*******
"
);
    }
    
    
public
 
void
 startPrefixMapping( String prefix, String uri )
{
        System.out.println(
"
 前缀映射: 
"
 
+
 prefix 
+
"
 开始!
"
+
 
"
 它的URI是:
"
 
+
 uri);
    }
    
    
public
 
void
 endPrefixMapping( String prefix )
{
        System.out.println(
"
 前缀映射: 
"
+
prefix
+
"
 结束!
"
);
    }
    
//
    public void processingInstruction( String target, String instruction )throws SAXException{}
    
//
    public void ignorableWhitespace( char[] chars, int start, int length ) throws SAXException {}
    
//
    public void skippedEntity( String name ) throws SAXException {}
    
    
public
 
void
 startElement(String namespaceURI,String localName,String qName,Attributes atts)
{
        System.out.println(
"
*******开始解析元素*******
"
);    
        System.out.println(
"
元素名
"
+
qName);        
        
for
(
int
 i
=
0
;i
<
atts.getLength();i
++
)
{
            System.out.println(
"
元素名
"
+
atts.getLocalName(i)
+
"
属性值
"
+
atts.getValue(i));
        }
    }
    
    
public
 
void
 endElement(String namespaceURI,String localName,String fullName )
throws
 SAXException
{
//
        buf.trimToSize();
        str 
=
 buf.toString(); 
        System.out.println(
"
buf = 
"
+
buf
+
"
 || length = 
"
+
buf.length());
        System.out.println(
"
str = 
"
+
str.trim()
+
"
 || length = 
"
+
str.trim().length());
        buf.delete(
0
,buf.length());
        System.out.println(
"
******
"
+
namespaceURI
+
"
元素解析结束
"
+
localName
+
"
********
"
+
fullName);
    }
    
    
public
 
void
 characters( 
char
[] chars, 
int
 start, 
int
 length )
throws
 SAXException
{
        
//
将元素内容累加到StringBuffer中 
        buf.append(chars,start,length);
    }
    
    
public
 
static
 
void
 main(String args[])
{
        
try
{
            SAXParserFactory sf 
=
 SAXParserFactory.newInstance();
            SAXParser sp 
=
 sf.newSAXParser();
            TestSAX testsax
=
new
 TestSAX();
            sp.parse(
new
 InputSource(
"
test1.xml
"
),testsax);
        }
catch
(IOException e)
{
            e.printStackTrace(); 
        }
catch
(SAXException e)
{
            e.printStackTrace(); 
        }
catch
(Exception e)
{
            e.printStackTrace(); 
        }
    }
}

xml文件,我读的时候有错误,用了自己的,希望其他人比我幸运!

代码:

<?
xml version="1.0" encoding="GB2312"
?>
<
row
>
<
person
>
<
name
>
王小明
</
name
>
<
college
>
信息学院
</
college
>
 
<
telephone
>
6258113
</
telephone
>
<
notes
>
男,1955年生,博士,95年调入海南大学
</
notes
>
</
person
>
</
row
>
 
本文转自博客园执着的笨蛋的博客,原文链接:
,如需转载请自行联系原博主。
你可能感兴趣的文章
java路径Java开发中获得非Web项目的当前项目路径
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>
如何申请开通微信多客服功能
查看>>
Sr_C++_Engineer_(LBS_Engine@Global Map Dept.)
查看>>
非监督学习算法:异常检测
查看>>
jquery的checkbox,radio,select等方法总结
查看>>
Linux coredump
查看>>
Ubuntu 10.04安装水晶(Mercury)无线网卡驱动
查看>>
Myeclipes快捷键
查看>>