代码写获取子节点循环里面了
?是用parser解析的
parser.parse("books.xml", dh);
解析指定xml文件;
指定继承DefaultHandler类的子类实例,使该子类中的@Override方法可以访问指定xml文件中的元素和值;
视频中SAXParserHandler不止4个方法,还有重写父类的characters方法, 可以从此方法得到book下的子节点的值.
开始解析和结束解析的输出应该分别放到startDocument()和endDocument()方法里.
这种也出不来东西
你的这个xml是下的还是自己写的?你看看xml里面有什么不完整的地方
第一行书写有问题,你去查一下这个异常的API,之后再检查一下你写的XML,感觉应该是你代码上的地址写错了
你看看导包导错了没
应该是这些包吧
看看你的xml文件内容是不是有错误,仔细检查一下,不行的话贴出来看一下
已经解决,是我没发现已经继承了那个函数。。。。
已解决,XML文件中?和尖括号之间不能有空格。。。。。
其实包在我的理解中,点号分割开的就是目录名字,例如:com.imooc.fucker表示的是文件甲com下有imooc这个文件甲,imooc下有fucker这个文件夹,如果在建一个包com.imooc.joker,那fucker和joker就在 同一个目录下了,你可以打开你的workspace空间,进去查看一下目录结构,就明白了;
handler是处理类,test是测试类,功能完全不一样,放在不同的包下面显得层次分明,就像小吃街都卖小吃,商场卖衣服,你在小吃街上开个卖衣服的店不是不可以 但是显然不太合适吧
是的啊
你另存为的时后没有存在同一路径
因为你的SAXpraserTest类里没有main主方法吧
你看看是不是books.xml文件编码的问题
包引用错了
我理解的这</bookStore>这里应该是先调用endEelements()方法,然后文件没有内容了就调用endDocuments()方法判断文件结束,具体怎么样你可以重写一下两个方法试试看
用于在文件中定位,一行一行地读。
alt+/ 可以智能预览
工厂模式--大概意思是通过接口,实现不同的类,通过工厂类函数的传参,返回不同的对象。
把SaxParseHandler里的import里的jdk.internal全部去掉试试看
哦,我知道了,你导入的包不对,SAXParserHandler应该导入你自己的见那个,而不是com.sun.org.apache.xml.internal.resolver.reader.SAXParserHandler;这个
自己新建的saxparserHandler类,没有正确继承。