在java中解析XML时遇到的问题
因此,我在下面几乎复制粘贴了SAX解析器示例中的代码。我在与java类相同的文件夹中创建了相同的employees.xml文件。我得到的错误是线程“main”java.lang.IllegalArgumentException中的在java中解析XML时遇到的问题,java,xml,parsing,Java,Xml,Parsing,因此,我在下面几乎复制粘贴了SAX解析器示例中的代码。我在与java类相同的文件夹中创建了相同的employees.xml文件。我得到的错误是线程“main”java.lang.IllegalArgumentException中的异常:在这一行代码中,InputStream不能为null: parser.parse(ClassLoader.getSystemResourceAsStream("employees.xml"),handler); 如果有任何帮助,您可以在此处查看我的其余代码: 有
异常:在这一行代码中,InputStream不能为null
:
parser.parse(ClassLoader.getSystemResourceAsStream("employees.xml"),handler);
如果有任何帮助,您可以在此处查看我的其余代码:有人知道如何让它正确读取xml文件吗?或者,如果有其他关于用java解析XML的好方法的建议,请与我们分享。感谢您不要使用ClassLoader,请尝试使用以下方法:
InputStream=SAXParserDemo.class.getClassLoader().getResourceAsStream(“employee.xml”);
资料来源: 谢谢,
Dev对于
getSystemResourceAsStream
的ClassLoader
类的文档表明,当找不到资源时,它返回一个null
因此,建议在调用parser.parse
之前,确保检查getsystemresourceastream
的结果不为空
文件还说
Open for reading,是用于加载类的搜索路径中指定名称的资源
因此,这意味着它不一定要搜索当前类文件所在的目录,而是搜索通用系统类路径
如果您只是使用纯Java,则可以在不使用类加载器的情况下打开普通的
FileInputStream
。如果您的目标是一个bean或其他实现,它指示类的位置和XML文件的位置之间的依赖关系,请使用当前类的类加载器,如Dev G的回答所示。您需要创建一个类文件夹,在eclipse中可以看到,在netbeans中可以看到,或者在没有任何IDE的情况下可以看到。最后,您要尝试以下操作:
parser.parse(SAXParserDemo.class.getResourceAsStream(“/employees.xml”),处理程序)
而不是:
parser.parse(ClassLoader.getSystemResourceAsStream(“employees.xml”),handler)
@卓登谁在这里谈论安卓?“我想你的评论甚至比澄清任何事情更让人困惑……”GyroGearless抱歉。