我正在尝试使用应该读取我的资源文件夹中的XML文件的方法编写一个辅助类,并获取一些我将在我的主类中工作的值。 我的项目结构如下所示:
Project
|
|---src
| |
| |---Main.class
| |
| |---Helper.class
|
|---resources
|
|---MYDOC.xml
到目前为止,我提出的Helper.class的代码是:
public class HelperClass {
static Document document;
static XPath xPath;
public HelperClass(){
try {
InputStream stream = HelperClass.class.getResourceAsStream("MYDOC.xml");
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
document = builder.parse(stream);
xPath = XPathFactory.newInstance().newXPath();
}
catch ( FileNotFoundException e ) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
}
};
static String getValue(){
String result = "";
String expression = "/SOMETHING/SOMETHING/VALUE";
try {
result = xPath.evaluate(expression, document);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return result;
} }
我已将resources文件夹设置为源文件夹,尝试了多种文件路径组合(/ MIDOC.xml,resources / MYDOC.xml等)但是当我尝试使用getValue时,我总是得到一个NullPointerException( )Main.class中的方法。
如果有人能解释我的错误或更好的解决方法,我将不胜感激,但我怀疑基本上我的整个代码都不好。
总结一下:我想创建一个HelperClass,它从xml文件中读取并获取值,然后在另一个类中使用这些方法。
提前感谢您的任何帮助/回答/批评。
答案 0 :(得分:0)
在类路径中,如果xml在资源文件夹中,请尝试
HelperClass.class.getClassLoader().getResourceAsStream("resources/MYDOC.xml");
如果xml直接位于类路径下,请尝试
HelperClass.class.getClassLoader().getResourceAsStream("MYDOC.xml");