使用 SAX 打开 XML 文件

发布于 2024-12-11 14:04:08 字数 217 浏览 0 评论 0原文

我想打开一个本地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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

﹏雨一样淡蓝的深情 2024-12-18 14:04:08

您正在使用 XMLReader。您可以使用它,但在 Java 中,您最好使用 javax.xml.parsers 包中的内容。使用 SAXParserFactory.newInstance() 创建一个 SAXParserFactory,对其进行配置,然后对其调用 newSAXParser()。仅当您绝对必须使用该实现时才提供类名。否则,最好让默认的查找机制来处理。至于实际问题,请学习文件的URI语法并使用它,或者获取File 实例或一个 InputStreamInputSource 并将其传递给读取器或解析器。

You're using an XMLReader. You could use that, but in Java you're probably better off using stuff from the javax.xml.parsers package. Create a SAXParserFactory using SAXParserFactory.newInstance(), configure it, then call newSAXParser() 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 a File instance or an InputStream or InputSource and pass that to the reader or parser.

清旖 2024-12-18 14:04:08

如果将字符串传递给 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')))

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文