Java XML解析(StAX)|来自XML文件的getResourceAsStream返回null
所以我知道这是一个非常流行的问题,但是没有一个可行的解决方案对我有效 我的代码是用于读取和解析xml文档的示例代码。或原始来源在此链接中: 我的java文件的相对路径是Java XML解析(StAX)|来自XML文件的getResourceAsStream返回null,java,file-io,xml-parsing,stax,getresource,Java,File Io,Xml Parsing,Stax,Getresource,所以我知道这是一个非常流行的问题,但是没有一个可行的解决方案对我有效 我的代码是用于读取和解析xml文档的示例代码。或原始来源在此链接中: 我的java文件的相对路径是 src\com\parser\xml\TestBasicStaxParsing.java 输入文件employee.xml与src&bin文件夹和.classpath文件的深度相同 顺便说一句,如果这对您有帮助的话,我正在windows环境中使用eclipse 下面是我试图运行的java文件 package com.pars
src\com\parser\xml\TestBasicStaxParsing.java
输入文件employee.xml与src&bin文件夹和.classpath文件的深度相同
顺便说一句,如果这对您有帮助的话,我正在windows环境中使用eclipse
下面是我试图运行的java文件
package com.parser.xml;
import java.io.InputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.events.XMLEvent;
import org.codehaus.stax2.XMLInputFactory2;
import org.codehaus.stax2.XMLStreamReader2;
public class TestBasicStaxParsing {
private void execute(String xmlFileName) throws Exception {
InputStream xmlInputStream = getClass().getResourceAsStream(xmlFileName);
XMLInputFactory2 xmlInputFactory = (XMLInputFactory2)XMLInputFactory.newInstance();
XMLStreamReader2 xmlStreamReader = (XMLStreamReader2) xmlInputFactory.createXMLStreamReader(xmlInputStream);
while(xmlStreamReader.hasNext()){
int eventType = xmlStreamReader.next();
switch (eventType) {
case XMLEvent.START_ELEMENT:
System.out.print("<"+xmlStreamReader.getName().toString()+">");
break;
case XMLEvent.CHARACTERS:
System.out.print(xmlStreamReader.getText());
break;
case XMLEvent.END_ELEMENT:
System.out.println("</"+xmlStreamReader.getName().toString()+">");
break;
default:
//do nothing
break;
}
}
}
public static void main(String[] args) throws Exception {
(new TestBasicStaxParsing()).execute("employee.xml");
}
}
但我不知道应该如何操纵它,为什么
有什么建议吗?
提前感谢正如JavaDoc中所说,空值出现在两种情况下: -null xmlFileName,因此请检查您实际传递的参数是否正确 -找不到资源 在第二种情况下,您似乎试图在soruce下的某个目录中获取TestBasicStaxParsing.java代码旁边的文件 确保xmlFileName是文件的完整名称,带有扩展名,并且没有任何其他路径部分,例如simple MyFile.xml,而不是一些../project/src/com/parser/xml/MyFile.xml 检查该文件是否已实际复制到生成文件夹,但未复制到bild脚本,因此它也应位于TestBasicStaxParsing.class文件的旁边
getClass().getResourceAsStream(xmlFileName)