- public class MyContentHandler extends DefaultHandler {
- String hisname, address, money, sex, status;
- String tagName;
-
- //当开始解析文档时,触发这个函数
- public void startDocument() throws SAXException {
- System.out.println("````````begin````````");
- }
- //当结束解析文档时,触发这个函数
- public void endDocument() throws SAXException {
- System.out.println("````````end````````");
- }
- //当扫描到开始标签时,触发这个函数。
- public void startElement(String namespaceURI, String localName,
- String qName, Attributes attr) throws SAXException {
- //使用全局变量tagName做为当前正在解析节点的标记。
- tagName = localName;
- if (localName.equals("worker")) {
-
- for (int i = 0; i < attr.getLength(); i++) {
- //打印其中某个属性的名称和属性值
- System.out.println(attr.getLocalName(i) + "=" + attr.getValue(i));
- }
- }
- }
-
- public void endElement(String namespaceURI, String localName, String qName)
- throws SAXException {
-
- tagName = "";
- if (localName.equals("worker")) {
- this.printout();
- }
- }
- //当扫描到标签内容时,触发这个函数。标签的内容存储在字符数组中。
- public void characters(char[] ch, int start, int length)
- throws SAXException {
- //首先判断当前扫描到的标签,而后根据当前标签判断标签内容
- if (tagName.equals("name"))
- hisname = new String(ch, start, length);
- else if (tagName.equals("sex"))
- sex = new String(ch, start, length);
- else if (tagName.equals("status"))
- status = new String(ch, start, length);
- else if (tagName.equals("address"))
- address = new String(ch, start, length);
- else if (tagName.equals("money"))
- money = new String(ch, start, length);
- }
-
- private void printout() {
- System.out.print("name: ");
- System.out.println(hisname);
- System.out.print("sex: ");
- System.out.println(sex);
- System.out.print("status: ");
- System.out.println(status);
- System.out.print("address: ");
- System.out.println(address);
- System.out.print("money: ");
- System.out.println(money);
- System.out.println();
- }
-
- }
|