Mensen ik ben momenteel bezig met een applicatie waar een xml bestand beschrijft welke classes geladen moeten worden.
Ik denk dat ik mijn probleem het beste kan uitleggen N.A.V. een stukje code:
Het idee is dus dat de xml file een aantal nodes gedefiniert zijn bijv <class1/><aapNootMies/><class1/>
En dat daarop deze classes geinstatiert worden in bijv een arraylist....
Momenteel geeft de functie "getXmlClass" echter de fout terug dat deze "classList[x]" niet new wil maken met de volgende error
Zou ik dit simpel kunnen herschrijven naar een werkende situatie?
Alvast bedankt!
Ik denk dat ik mijn probleem het beste kan uitleggen N.A.V. een stukje code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
| package siriusConfig.cardDevice.desfireCommands; import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.xml.sax.SAXException; public class listNodes { class ClassAction{ public Node xmlNode=null; public ClassAction(Node xmlNode){ super(); this.xmlNode=xmlNode; } public final static String xmlName=null; } class Class1 extends ClassAction{ public Class1(Node xmlNode) { super(xmlNode); } public final static String xmlName="class1"; } class Class2 extends ClassAction{ public Class2(Node xmlNode) { super(xmlNode); } public final static String xmlName="aapNootMies"; } private final static ClassAction[] classList={class1,class2}; private ClassAction getXmlClass(Node xmlNode){ for(int x=0;x<classList.length;x++){ if(xmlNode.getNodeName().startsWith(classList[x].xmlName)){ return new classList[x](xmlNode); } } return null; } public listNodes(File xmlFile){ DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance(); try { DocumentBuilder db = dbf.newDocumentBuilder(); Document xmlDoc = db.parse(xmlFile); Element docEle = xmlDoc.getDocumentElement(); Node child=docEle.getFirstChild(); while(child!=null){ if(child.getNodeType()==Node.ELEMENT_NODE){ System.out.println("this is node "+child.getNodeName()); getXmlClass(child);//de nieuwe class wordt bijv in een collectie gezet... } child=child.getNextSibling(); } } catch (SAXException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }catch (ParserConfigurationException e) { e.printStackTrace(); } } } |
Het idee is dus dat de xml file een aantal nodes gedefiniert zijn bijv <class1/><aapNootMies/><class1/>
En dat daarop deze classes geinstatiert worden in bijv een arraylist....
Momenteel geeft de functie "getXmlClass" echter de fout terug dat deze "classList[x]" niet new wil maken met de volgende error
Weet iemand of hetgeen dat ik wil doen uberhaubt mogelijk is in java?Multiple markers at this line
- Syntax error on token "]", AssignmentOperator expected after this token
- The left-hand side of an assignment must be a variable
Zou ik dit simpel kunnen herschrijven naar een werkende situatie?
Alvast bedankt!