Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中解析XML时遇到的问题_Java_Xml_Parsing - Fatal编程技术网

在java中解析XML时遇到的问题

在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); 如果有任何帮助,您可以在此处查看我的其余代码: 有

因此,我在下面几乎复制粘贴了SAX解析器示例中的代码。我在与java类相同的文件夹中创建了相同的employees.xml文件。我得到的错误是线程“main”java.lang.IllegalArgumentException中的
异常:在这一行代码中,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抱歉。