栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > 其他 > xml语言

java使用SAX解析xml的代码实例

xml语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java使用SAX解析xml的代码实例

import java.io.File;import java.util.linkedList;import java.util.List; import javax.xml.parsers.SAXParser;import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes;import org.xml.sax.SAXException;import org.xml.sax.helpers.DefaultHandler; public class ParseXMLFileWithSAX extends DefaultHandler { private StringBuffer buffer = new StringBuffer();     private static String responseCode;    private static String date;    private static String title;     private static Currency currency;    private static Rates rates;     public static void main(String[] args) throws Exception {         DefaultHandler handler = new ParseXMLFileWithSAX();         SAXParserFactory factory = SAXParserFactory.newInstance();        factory.setValidating(false);         SAXParser parser = factory.newSAXParser();         parser.parse(new File("in.xml"), handler);         System.out.println("Response Code:" + responseCode);        System.out.println("Date:" + date);        System.out.println("Title:" + title);        System.out.println("Rates:");         for (Currency curr : rates.currencies) {            System.out.println("tCode:" + curr.code + " - Rate:" + curr.rate);        }     }     private static class Currency {        public String code;        public String rate;    }     private static class Rates {        public List currencies = new linkedList();    }     @Override    public void startElement(String uri, String localName, String qName,            Attributes attributes) throws SAXException {         buffer.setLength(0);         if (qName.equals("response")) {            responseCode = attributes.getValue("code");        }        else if (qName.equals("date")) {            date = "";        }        else if (qName.equals("title")) {            title = "";        }        else if (qName.equals("rates")) {            rates = new Rates();        }        else if (qName.equals("currency")) {            currency = new Currency();        }     }     @Override    public void endElement(String uri, String localName, String qName)throws SAXException {         if (qName.equals("date")) {            date = buffer.toString();        }        else if (qName.equals("title")) {            title = buffer.toString();        }        else if (qName.equals("currency")) {            rates.currencies.add(currency);        }        else if (qName.equals("code")) {            currency.code = buffer.toString();        }        else if (qName.equals("rate")) {            currency.rate = buffer.toString();        }     }     public void characters(char[] ch, int start, int length) {        buffer.append(ch, start, length);    } }

输入xml文件:

    2008-11-07    Exchange rates for 2008-11-07                        EUR            1.220                            USD            1.275            

输出:

Response Code:200Date:2008-11-07Title:Exchange rates for 2008-11-07Rates:    Code:EUR - Rate:1.0    Code:USD - Rate:1.275600

以上就是java使用SAX解析xml的代码实例的详细内容,更多请关注考高分网其它相关文章!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/794364.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号