Ich versuche, eine Hilfsklasse mit Methoden zu schreiben, die eine XML-Datei in meinem Ressourcenordner lesen und einige Werte abrufen sollten, auf denen ich in meiner Hauptklasse arbeiten werde. Meine Projektstruktur sieht wie folgt aus:Lesen einer Ressource aus einer Hilfsklasse
Project
|
|---src
| |
| |---Main.class
| |
| |---Helper.class
|
|---resources
|
|---MYDOC.xml
Und der Code für die Helper.class ich mit so weit kam ist:
public class HelperClass {
static Document document;
static XPath xPath;
öffentlichen 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();
}
};
statischer String getValue() {
String result = "";
String expression = "/SOMETHING/SOMETHING/VALUE";
try {
result = xPath.evaluate(expression, document);
} catch (XPathExpressionException e) {
e.printStackTrace();
}
return result;
} }
Ich habe den Ressourcen-Ordner als Quellordner einzurichten, versucht, viele Kombinationen der Dateipfad (/MYDOC.xml, Ressourcen/mydoc.xml etc.), aber ich bekomme immer eine Nullpointer, wenn ich Versuchen Sie, die getValue() -Methode in der Main.class zu verwenden.
Ich wäre dankbar, wenn mir jemand erklären könnte, was ich falsch mache oder einen besseren Weg, um das zu lösen, aber ich vermute, dass im Grunde mein ganzer Code schlecht ist.
Zusammenfassend: Ich möchte eine HelperClass machen, liest und ruft Werte aus einer XML-Datei und dann diese Methoden in einer anderen Klasse.
Vielen Dank im Voraus für jede Hilfe/Antwort/Kritik.
Compile auf eine .jar-Datei, und suchen mit einem Zip-Dienstprogramm hinein. Es sollte MYDOC.xml enthalten. Wenn nicht, müssen Ressourcen ein Quellordner in der IDE sein. Wenn im Pfad der Pfad Ressourcen/MYDOC.xml lautet, verwenden Sie diesen Pfad als relativen oder absoluten Pfad "/resources/MYDOC.xml". Und beachten Sie die Groß- und Kleinschreibung. –
Gehen Sie zu Ihrem Klassenordner, können Sie die XML-Datei zusammen mit Ihren .class-Dateien sehen? –
@JoopEggen Kompiliert, die Datei ist drin. –