Billie
Erfahrenes Mitglied
Hellas!
Also, folgendes Problem. Ich habe eine XML Datei die wie folgt aufgebaut ist:
Mit dieser XML Datei will ich in einem Programm arbeiten, weiß aber nicht wie ich das am Besten anstellen soll. Unten steht mein bisheriger Code, der die Liste der Server aus dem derzeit ausgewählten Network ausgibt. Aber wenn jetzt ein anderer Server ausgewählt wird, soll sich der gespeicherte Port selbst im TextField eintragen usw.
Ich versuche jetzt eine Frage zu formulieren. Also, ist es Besser ich schreibe eigene IRCNetwork/Server Klassen und instanziere diese einmal, speichere gleichzeit mit Enumerationen die Infos wie Port, Password. Oder ist es Besser ich lese wie bisher alles immer aus der XML Datei und wenn ja, dann geht es auch einfacher als so wie ich es bisher habe... mir gefallen diese vielen Schleifen einfach nicht.
Also, folgendes Problem. Ich habe eine XML Datei die wie folgt aufgebaut ist:
PHP:
<IRCServers>
<IRCNetwork name="Tutorials.de">
<IRCServer Server="irc.tutorials.de">
<Description>Tutorials.de</Description>
</IRCServer>
</IRCNetwork>
<IRCNetwork name="QuakeNet">
<IRCServer Server="de.quakenet.org">
<Description></Description>
<Port>6669</Port>
</IRCServer>
<IRCServer Server="us.quakenet.org">
<Description>QuakeNet: Random US server</Description>
<Password>Hallo</Password>
</IRCServer>
</IRCNetwork>
</IRCServers>
Mit dieser XML Datei will ich in einem Programm arbeiten, weiß aber nicht wie ich das am Besten anstellen soll. Unten steht mein bisheriger Code, der die Liste der Server aus dem derzeit ausgewählten Network ausgibt. Aber wenn jetzt ein anderer Server ausgewählt wird, soll sich der gespeicherte Port selbst im TextField eintragen usw.
Ich versuche jetzt eine Frage zu formulieren. Also, ist es Besser ich schreibe eigene IRCNetwork/Server Klassen und instanziere diese einmal, speichere gleichzeit mit Enumerationen die Infos wie Port, Password. Oder ist es Besser ich lese wie bisher alles immer aus der XML Datei und wenn ja, dann geht es auch einfacher als so wie ich es bisher habe... mir gefallen diese vielen Schleifen einfach nicht.
PHP:
NodeList nl = serversXML.getElementsByTagName("IRCNetwork");
for(int i = 0; i < nl.getLength(); i++) {
Node n = nl.item(i).getAttributes().item(0);
if(n != null && n.getNodeValue().trim().length() > 0 && n.getNodeValue().trim() == networkComboBox.getSelectedItem()) {
if(nl.item(i).hasChildNodes()) {
NodeList nl2 = nl.item(i).getChildNodes();
for(int i2 = 0; i2 < nl2.getLength(); i2++) {
if(nl2.item(i2).getNodeName().equals("IRCServer")) {
if(nl2.item(i2).hasChildNodes()) {
NodeList nl3 = nl2.item(i2).getChildNodes();
for(int i3 = 0; i3 < nl3.getLength(); i3++) {
if(nl3.item(i3).getNodeName().equals("Description")) {
if(nl3.item(i3).hasChildNodes() && nl3.item(i3).getFirstChild().getNodeValue().trim().length() > 0) {
serverComboBox.addItem(nl3.item(i3).getFirstChild().getNodeValue().trim());
} else if(nl2.item(i2).hasAttributes() && nl2.item(i2).getAttributes().item(0).getNodeValue().trim().length() > 0) {
serverComboBox.addItem(nl2.item(i2).getAttributes().item(0).getNodeValue().trim());
}
} else if(nl3.item(i3).getNodeName().equals("Port")) {
} else if(nl3.item(i3).getNodeName().equals("Password")) {
}
}
} else if(nl2.item(i2).hasAttributes() && nl2.item(i2).getAttributes().item(0).getNodeValue().trim().length() > 0) {
serverComboBox.addItem(nl2.item(i2).getAttributes().item(0).getNodeValue().trim());
}
}
}
}
}
}