Так что я знаю, что это довольно популярная проблема, однако не для решения avaialable работал для меня.XML Parsing (StAX) | getResourceAsStream из xml-файла возвращает null
Мой код - пример кода для чтения и анализа XML-документа. Orriginal источник находится в этой ссылке: http://www.studytrails.com/java/xml/woodstox/java-xml-stax-woodstox-basic-parsing.jsp
относительный путь для моего файла Явы
src\com\parser\xml\TestBasicStaxParsing.java
входной файл «employee.xml» находится в той же глубины, как Src & бен папку и файл .classpath ,
BTW Я использую eclipse в среде Windows, если это вам поможет.
Ниже приводится 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");
}
}
До моего понимания, кажется, что существует несколько альтернатив для следующей строки кода в зависимости от:
- Ли ваши функции является статическим или нет.
- Расширение вашего входного файла
EDIT
getClass().getResourceAsStream(xmlFileName)
Но я не знаю, как это следует манипулировать и почему
Есть предложения? Заранее спасибо