Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 263|回复: 0

[xml学习]一个用SAX读取XML文件的简单例子

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-10 03:03:34 | 显示全部楼层 |阅读模式
    这是XML文件 <?xml version="1.0"?>
    <students>
       <student>
         <sid>200001121</sid>
         <name>张三</name>
         <gender>男</gender>
         <age>22</age>
         <grade>大二</grade>
         <major>计算机应用</major>
       </student>
       <student>
         <sid>200001131</sid>
         <name>李四</name>
         <gender>女</gender>
         <age>21</age>
         <grade>大二</grade>
         <major>机械电子</major>
       </student>
          
          
            
             
            

            
            
          
         
         <student>
    <sid>200001141</sid>
    <name>王五</name>
    <gender>男</gender>
    <age>23</age>
    <grade>大三</grade>
    <major>工业设计</major>
    </student>
    </students>  
       
      
    这是源程序:
    1. import org.xml.sax.Attributes;
    2. import org.xml.sax.SAXParseException;
    3. import org.xml.sax.SAXException;
    4. import javax.xml.parsers.SAXParserFactory;
    5. import javax.xml.parsers.SAXParser;
    6. import org.xml.sax.helpers.DefaultHandler;
    7.         class SAXTest extends DefaultHandler{
    8.             private StringBuffer buffer=new StringBuffer();
    9.             public void parseURI(String uri)
    10.             {
    11.                 try
    12.                 {
    13.                     SAXParserFactory spf = SAXParserFactory.newInstance();
    14.                     SAXParser sp = spf.newSAXParser();
    15.                     sp.parse(uri,this);
    16.                 }
    17.                 catch (Exception e)
    18.                 {
    19.                     e.printStackTrace();
    20.                 }
    21.             }
    22.             /** Start document. */
    23.             public void startDocument()
    24.             {
    25.                 buffer.append("< ?xml version="1.0"?>");
    26.             }
    27.             /** Start element. */
    28.             public void startElement(String namespaceURI, String localName,
    29.                                      String rawName, Attributes attrs)
    30.             {
    31.                 buffer.append("< ");
    32.                 buffer.append(rawName);
    33.                 if (attrs != null)
    34.                 {
    35.                     int len = attrs.getLength();
    36.                     for (int i = 0; i < len; i++)
    37.                     {
    38.                         buffer.append(" ");
    39.                         buffer.append(attrs.getQName(i));
    40.                         buffer.append("="");
    41.                         buffer.append(attrs.getValue(i));
    42.                         buffer.append(""");
    43.                     }
    44.                 }
    45.                 buffer.append(">");
    46.             }
    47.             /** Characters. */
    48.             public void characters(char ch[], int start, int length)
    49.             {
    50.                 buffer.append(new String(ch, start, length));
    51.             }
    52.             /** Ignorable whitespace. */
    53.             public void ignorableWhitespace(char ch[], int start, int length)
    54.             {
    55.                 characters(ch, start, length);
    56.             }
    57.             /** End element. */
    58.             public void endElement(String namespaceURI, String localName,
    59.                                    String rawName)
    60.             {
    61.                 buffer.append("");
    62.             } // endElement(String)
    63.             /** End document. */
    64.             public void endDocument()
    65.             {
    66.             }
    67.             /** Processing instruction. */
    68.             public void processingInstruction(String target, String data)
    69.             {
    70.                 buffer.append("< ?");
    71.                 buffer.append(target);
    72.                 if (data != null && data.length() > 0)
    73.                 {
    74.                     buffer.append(" ");
    75.                     buffer.append(data);
    76.                 }
    77.                 buffer.append("?>");
    78.             }
    79.             /** Returns a string of the location. */
    80.             private String getLocationString(SAXParseException ex)
    81.             {
    82.                 StringBuffer str = new StringBuffer();
    83.                 String systemId = ex.getSystemId();
    84.                 if (systemId != null)
    85.                 {
    86.                     int index = systemId.lastIndexOf("/");
    87.                     if (index != -1)
    88.                         systemId = systemId.substring(index + 1);
    89.                     str.append(systemId);
    90.                 }
    91.                 str.append(":");
    92.                 str.append(ex.getLineNumber());
    93.                 str.append(":");
    94.                 str.append(ex.getColumnNumber());
    95.                 return str.toString();
    96.             }
    97.           public static void main(String args[]){
    98.            SAXTest st=new SAXTest();
    99.            st.parseURI("student.xml");
    100.           System.out.println(st.buffer.toString());
    101.         }
    102.         }
    复制代码
      程序运行结果: C:java>java SAXTest
    <?xml version="1.0"?><students>
    <student>
    <sid>200001121</sid>
    <name>张三</name>
    <gender>男</gender>
    <age>22</age>
    <grade>大二</grade>
    <major>计算机应用</major>
    </student>
    <student>
    <sid>200001131</sid>
    <name>李四</name>
    <gender>女</gender>
    <age>21</age>
    <grade>大二</grade>
    <major>机械电子</major>
    </student>
    <student>
    <sid>200001141</sid>
    <name>王五</name>
    <gender>男</gender>
    <age>23</age>
    <grade>大三</grade>
    <major>工业设计</major>
    </student>
    </students> C:java>

      
      
       
       

         
       

         
       
      
       
      

      










    源码下载:http://file.javaxxz.com/2014/10/10/030334484.zip
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-5-8 05:00 , Processed in 0.357893 second(s), 46 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表