会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132360个问题
JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 512楼

package com.bjsxt.dom;

import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class BookDefaultHandler extends DefaultHandler {
    //重写1
    /**解析xml文档开始时调用*/
    @Override
    public void startDocument() throws SAXException {
        super.startDocument();
        System.out.println("解析xml开始");
    }
    /**解析xml文档结束时调用*/
    @Override
    public void endDocument() throws SAXException {
        super.endDocument();
        System.out.println("解析结束");
    }
    /**解析xml中节点时调用*/
    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
        super.startElement(uri, localName, qName, attributes);
       // System.out.println("解析xml中节点时调用");
        //判断如果是book节点,就获取节点的属性和属性值
        if ("book".equals(qName)){
            //获取所有属性
            int count = attributes.getLength();//=个数
            for (int i = 0;i < count ;i++){
                String attName = attributes.getQName(i);
                String attValue = attributes.getValue(i);
                System.out.println("属性名称:"+attName+"\t值为:"+attValue);
            }
        }else if (!"book".equals(qName) && !"books".equals(qName)){
            System.out.println("节点名称:"+qName);
        }
    }
    /**解析xml中节点结束时调用*/
    @Override
    public void endElement(String uri, String localName, String qName) throws SAXException {
        super.endElement(uri, localName, qName);
       //System.out.println("解析xml中节点结束时调用");
    }

    @Override
    public void characters(char[] ch, int start, int length) throws SAXException {
        super.characters(ch, start, length);
        String value = new String(ch, start, length);
        if ("".equals(value.trim())){
            System.out.println(value);
        }
    }
}

在这个重写的characters里面,我的这个value并没有值,并且还是有空白。这是什么原因呢?


image.png

JAVA 全系列/第二阶段:JAVA 基础深化和提高/XML 技术(旧) 513楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/容器 517楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/异常机制 518楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程技术 519楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/常用类 522楼
JAVA 全系列/第二阶段:JAVA 基础深化和提高/多线程和并发编程(旧) 525楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637