用HandlerBase解析标签及其元素

本文介绍了一个使用SAX解析器处理XML文件的Java程序实例。该程序能够读取包含教师信息的XML文件,并通过SAXHandler类解析具体内容。示例中演示了如何获取教师的基本信息如姓名及备注。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?xml version="1.0" encoding="GB18030" ?> <teacher> <name note="95年调入海南大学">王小明</name> <college>信息学院</college> <telphone>6258113</telphone> <notes>男,1955年生,博士,95年调入海南大学</notes> </teacher> import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.AttributeList; import org.xml.sax.HandlerBase; import org.xml.sax.SAXException; public class SAXHandler extends HandlerBase { private Map<String ,String> map = new HashMap<String,String>(); private String value=""; private String name=""; AttributeList attributest; public void characters(char[] ch, int start, int length) throws SAXException { value = new String(ch, start, length); } @Override public void startElement(String name, AttributeList attributes) throws SAXException { this.name = name; this.attributest=attributes; } @Override public void endElement(String name) throws SAXException { if (name.equals(this.name)) { map.put(this.name, this.value); } for (int i = 0; i < attributest.getLength(); i++) { map.put(attributest.getName(i), attributest.getValue(i)); } } public String getValue(String name) { return map.get(name)==null?"":map.get(name); } public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException { SAXHandler handler = new SAXHandler(); SAXParser parser = SAXParserFactory.newInstance().newSAXParser(); String pathname = "teacher.xml"; parser.parse(new File(pathname), handler); String name = "name"; System.out.println(handler.getValue(name)); name="note"; System.out.println(handler.getValue(name)); } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值