使用 SAX 打开 XML 文件
我想打开一个本地xml文件来解析它。 所以我有这一行: saxReader.parse("file.xml");
我有这个错误打开失败:ENOENT(没有这样的文件或目录)
所以我尝试通过提供类似 C:/.../file.xml 的完整路径来解决它 但也存在同样的问题。
我应该将 file.xml 放在项目中的哪里来解决该问题?
谢谢
I want to open a local xml file to parse it.
So i've this line : saxReader.parse("file.xml");
And i've this error open failed: ENOENT (No such file or directory)
So I try to resolve it by giving a fullpath something like C:/.../file.xml
But there is the same problem.
Where do I put the file.xml in the project to resolve the problem ?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您正在使用
XMLReader
。您可以使用它,但在 Java 中,您最好使用 javax.xml.parsers 包中的内容。使用SAXParserFactory.newInstance()
创建一个SAXParserFactory
,对其进行配置,然后对其调用newSAXParser()
。仅当您绝对必须使用该实现时才提供类名。否则,最好让默认的查找机制来处理。至于实际问题,请学习文件的URI语法并使用它,或者获取File
实例或一个InputStream
或InputSource
并将其传递给读取器或解析器。You're using an
XMLReader
. You could use that, but in Java you're probably better off using stuff from thejavax.xml.parsers
package. Create aSAXParserFactory
usingSAXParserFactory.newInstance()
, configure it, then callnewSAXParser()
on it. Only provide a class name like you do if you absolutely must use that implementation. Otherwise, it is better to let the default lookup mechanism handle that. As for the actual problem, learn the URI syntax for files and use it, or obtain aFile
instance or anInputStream
orInputSource
and pass that to the reader or parser.如果将字符串传递给 XMLReader.parse(),它应该是完全解析的(即绝对)URL。 file.xml 不是绝对 URL(它是相对的)。
c:\dir\dir\file.xml
也不是绝对 URL - 它是 Windows 文件名。如果您不理解 URL 并且不习惯使用它们,则传递 Java 文件会更简单:parse(new InputSource(new File('file.xml')))
If you pass a string to XMLReader.parse(), it should be a fully-resolved (i.e. absolute) URL. file.xml is not an absolute URL (it's relative).
c:\dir\dir\file.xml
is not an absolute URL either - it's a Windows filename. If you don't understand URLs and aren't used to working with them, it's simpler to pass a Java file:parse(new InputSource(new File('file.xml')))