黑马程序员技术交流社区

标题: 学习xml解析概述和DOM&SAX解析原理时遇到的问题 [打印本页]

作者: 秀川大人    时间: 2013-3-31 21:48
标题: 学习xml解析概述和DOM&SAX解析原理时遇到的问题
本帖最后由 秀川大人 于 2013-3-31 22:45 编辑

Document document = builder.parse("src/book.xml");//这行代码为什么一直提示系统找不到指定的文件啊,我的book.xml和解析程序在同一个工程中
作者: 秀川大人    时间: 2013-3-31 22:05
别加分啊,为啥出现错误啊
作者: 刘松老师    时间: 2013-3-31 22:09
你的book.xml是在src下面直接建的吧,你要的应该是相对路径,我在用读取流读取文件时也遇到过这样的问题,我当时是这样做的BufferedReader br = new BufferedReader(new FileReader("../exam/src/a.txt"));,exam是项目名,不知道是不是一样的问题,你可以试试,希望对你有所帮助。
作者: 王亚东    时间: 2013-3-31 22:11
错误信息是什么,也许是你的book.xml文件在包里呢?
作者: 秀川大人    时间: 2013-3-31 22:19
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;

import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;

//使用dom方式对xml文档进行crud
public class Dome2 {

        @Test
        public void read() throws Exception {               
                DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();               
                DocumentBuilder builder = factory.newDocumentBuilder();               
                Document document = builder.parse("src/book.xml");
                NodeList list = document.getElementsByTagName("书名");
                Node node = list.item(0);
                String content = node.getTextContent();
                System.out.println(content);
        }
}
大神们快帮帮我吧
作者: 黄小贝    时间: 2013-3-31 22:30
发你的目录结构,我这样的结构没有问题



作者: 秀川大人    时间: 2013-3-31 22:32
王亚东 发表于 2013-3-31 22:11
错误信息是什么,也许是你的book.xml文件在包里呢?

在同一个包中啊,错误是系统找不到指定的文件
作者: 秀川大人    时间: 2013-3-31 22:33
刘松 发表于 2013-3-31 22:09
你的book.xml是在src下面直接建的吧,你要的应该是相对路径,我在用读取流读取文件时也遇到过这样的问题, ...

Document document = builder.parse("../day2/src/book.xml");
还是不行啊
作者: 秀川大人    时间: 2013-3-31 22:39
黄小贝 发表于 2013-3-31 22:30
发你的目录结构,我这样的结构没有问题

我的是这样啊

捕获.PNG (90.14 KB, 下载次数: 43)

捕获.PNG

作者: 王亚东    时间: 2013-3-31 22:40
就用你自己的方法Document document = builder.parse("src/book.xml");
在src/后加上包名应该就可以了
作者: 秀川大人    时间: 2013-3-31 22:45
王亚东 发表于 2013-3-31 22:40
就用你自己的方法Document document = builder.parse("src/book.xml");
在src/后加上包名应该就可以了 ...

谢谢你啊,终于通过了,非常感谢,这个小问题我都调试了近一个小时
作者: 黄小贝    时间: 2013-3-31 22:45
秀川大人 发表于 2013-3-31 22:39
我的是这样啊

明显不是啊,应该把book.xml提到外面,不要在任何子包里面
作者: 秀川大人    时间: 2013-3-31 22:47
黄小贝 发表于 2013-3-31 22:45
明显不是啊,应该把book.xml提到外面,不要在任何子包里面

我的book.xml文件和解析程序在同一个包中,没有子包啊
作者: 王亚东    时间: 2013-3-31 22:52
秀川大人 发表于 2013-3-31 22:45
谢谢你啊,终于通过了,非常感谢,这个小问题我都调试了近一个小时

以后注意看错误信息,尤其是提示错误的文件路径(即、jvm去寻找的文件路径)和你本地的文件路径是否一样关于路径的问题的确很难搞,多使用打印语句先把路径打印出来就会找到规律了。
作者: 黄小贝    时间: 2013-3-31 22:57
秀川大人 发表于 2013-3-31 22:45
谢谢你啊,终于通过了,非常感谢,这个小问题我都调试了近一个小时

我不是说了吗,你的xml在你自己包里面,你应该提到外面的default包里面才能,否则就加上包名!
作者: 秀川大人    时间: 2013-3-31 22:58
王亚东 发表于 2013-3-31 22:52
以后注意看错误信息,尤其是提示错误的文件路径(即、jvm去寻找的文件路径)和你本地的文件路径是否一样 ...

谢谢你啊!!!!!!!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2