用事件回调类解析xml文件

<?xml version="1.0" encoding="GB18030"?> <tarena> <job>java+3G</job> </tarena>

import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.AttributeList; import org.xml.sax.HandlerBase; import org.xml.sax.InputSource; import org.xml.sax.SAXException; public class SAXHandler extends HandlerBase { private static SAXHandler handler; static { if (handler == null) { handler = new SAXHandler(); } } public static SAXHandler getInstance() { return handler; } private Map<String, String> map = new HashMap<String, String>(); // 元素键 private String currentElement = ""; // 元素值 private String currentValue = ""; public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } public void startElement(String currentElement, AttributeList attrs) throws SAXException { this.currentElement = currentElement; } // 构造元素的值 public void characters(char[] ch, int start, int length) throws SAXException { currentValue = new String(ch, start, length); } // 当开始标签与结束标签时,存放标签体的值 public void endElement(String name) throws SAXException { if (currentElement.equals(name)) { map.put(currentElement, currentValue); } } public String value(String key) { return map.get(key); } public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { SAXHandler handler = SAXHandler.getInstance(); String path = "tarena.xml"; SAXParserFactory.newInstance().newSAXParser().parse( new InputSource(new FileReader(new File(path))), handler); System.out.println(handler.value("job")); } }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值