【发布时间】:2015-06-13 05:13:45
【问题描述】:
所以我知道这是一个非常受欢迎的问题,但是没有可用的解决方案对我有用。
我的代码是一个读取和解析xml文档的示例代码。原文在此链接:http://www.studytrails.com/java/xml/woodstox/java-xml-stax-woodstox-basic-parsing.jsp
我的java文件的相对路径是
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");
}
}
据我了解,以下代码行似乎有多种选择,具体取决于:
- 您的函数是否是静态的。
- 输入文件的扩展名
编辑
getClass().getResourceAsStream(xmlFileName)
但我不确定它应该如何被操纵以及为什么
有什么建议吗? 提前致谢
【问题讨论】:
标签: java file-io xml-parsing stax getresource