Ich habe die Datei noch ein wenig umgeändert, und wollte jetzt es so machen, da der XML Exporter ja eigentlich an ein Hauptprogramm "gehängt" wird, um von dort die geschickten Daten zu exportieren in einer XML Datei das machen.
Das Problem ist, dass ich seit Tagen dran sitze, und egal wie ich es mache, es einfach net will, und die die ich kenne und sich mit Java auskennen, auch net weiter wussten.
Also die Grundidee ist einfach, dass man den Exporter mit Argumenten aufruft, und eben die Argumente die Werte sind, die im XML exportiert und gesichert werden sollen. Das Problem ist aber, dass er in neuesDoc die Argumente ja nicht mehr "kennt" und man deswegen aus der Main sie hinbekommen muss. Ich dachte mir, dass macht man einfach, in dem man von neuesDoc einfach den Methodenkopf ändert, dort eben die ganzen Argumente dann übergibt, die dann eben in neuesDoc weiter verwendet werden.
Ansich funktioniert das super, nur das Problem ist, dass er so nur "fixe" Variablen annimmt, also Variable (in dem Fall Strings) die ich im Code mit "1" angebe, aber wenn ich z.b. einer Variable den String 1 zuweiße, und dann eben mit der Variable weiter arbeite, geht das nicht.
Genauso kann ich warum auch immer die Argumente nicht einlesen, da er dann immer einen Fehler hat. Somit kann ich leider auch nicht, warum auch immer, da ich eben die Argumente nicht einlesen kann, aus dem Hauptprogramm mithilfe von Argumenten die Strings die mit dem XML Exporter gespeichert werden sollen weiterarbeiten...
Deswegen würde ich gerne wissen, warum ich nicht mit String IP = args [0]; das Argument einlesen kann, und warum ich nicht bei XD.doc = XD.neuesDoc("1", "2", "3", "4" ,"5", "6" ) auch Variable verwenden kann bzw wie ich das Problem sonst noch lösen könnte...
// fuer XML und DOM
import org.w3c.dom.*;
import javax.xml.parsers.*;
//fuer Writer
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class XmlExporter
{
Document doc = null;
Element RTP_Optionen = null;
Element Effekt = null;
public static void main(String[] args) throws IOException
{
// String IP = args [0]; hier will ich die Argumente einlesen damit ich dann 2 Zeilen darunter sie "weitergeben" kann an neuesDoc
XmlExporter XD = new XmlExporter();
XD.doc = XD.neuesDoc("1", "2", "3", "4" ,"5", "6" ); // hier will ich z.b. das Argument das in IP gespeichert ist an neuesDoc geben zur Weiterverarbeitung
XD.printDOMTree(XD.doc);
}
public Document neuesDoc(String IP, String Port, String Beg, String Dau, String Laut, String Inten)
{
DocumentBuilderFactory docBFac;
DocumentBuilder docBuild;
try
{
docBFac = DocumentBuilderFactory.newInstance();
docBuild = docBFac.newDocumentBuilder();
doc = docBuild.newDocument();
}
catch( Exception e )
{
System.out.println("Dokument konnte nicht erzeugt werden");
}
if (doc != null)
{
Element root = doc.createElement("GUI");
//Aufbau: root.setAttribute("type", "Das_ist_die_Typart");
//Auflistung der RTP Optionen
RTP_Optionen = doc.createElement("RTP_Optionen");
Element Empfaenger_IP = doc.createElement("Empfaenger_IP");
//Empfaenger_IP.appendChild(doc.createTextNode("123123"));
Empfaenger_IP.appendChild(doc.createTextNode(IP));
RTP_Optionen.appendChild(Empfaenger_IP);
Element Port_Nummer = doc.createElement("Port_Nummer");
//Port_Nummer.appendChild(doc.createTextNode("12324"));
Port_Nummer.appendChild(doc.createTextNode(Port));
RTP_Optionen.appendChild(Port_Nummer);
root.appendChild(RTP_Optionen);
//Auflistung der Effekt Optionen
Effekt = doc.createElement("Effekt");
Element Beginn = doc.createElement("Beginn");
//Beginn.appendChild(doc.createTextNode("45"));
Beginn.appendChild(doc.createTextNode(Beg));
Effekt.appendChild(Beginn);
Element Dauer = doc.createElement("Dauer");
//Dauer.appendChild(doc.createTextNode("23"));
Dauer.appendChild(doc.createTextNode(Dau));
Effekt.appendChild(Dauer);
Element Lautstaerke = doc.createElement("Lautstaerke");
//Lautstaerke.appendChild(doc.createTextNode("63"));
Lautstaerke.appendChild(doc.createTextNode(Laut));
Effekt.appendChild(Lautstaerke);
Element Intensitaet = doc.createElement("Intensitaet");
// Intensitaet.appendChild(doc.createTextNode("12"));
Intensitaet.appendChild(doc.createTextNode(Inten));
Effekt.appendChild(Intensitaet);
root.appendChild(Effekt);
doc.appendChild(root);
}
return doc;
}
// git die Knoten rekursiv aus
public void printDOMTree(Node node ) throws IOException
{
//File Writer
File datei = new File("ausgabe.xml");
FileWriter ausgabeStrom = new FileWriter(datei);
PrintWriter ausgabe = new PrintWriter(ausgabeStrom); // scheibt alles nach System.out
_printDOMTree(node, ausgabe );
ausgabe.close(); // oder ausgabe.flush um Stream offen zu lassen
}
// git die Knoten rekursiv aus
private void _printDOMTree(Node node, PrintWriter ausgabe ) throws IOException
{
int type = node.getNodeType();
switch (type)
{
// document element ausgeben
case Node.DOCUMENT_NODE:
{
_printDOMTree(((Document)node).getDocumentElement(), ausgabe );
break;
}
// Element ausgeben mit Attributen
case Node.ELEMENT_NODE:
{
ausgabe.print("<");// Anfangstag
ausgabe.print(node.getNodeName());
NamedNodeMap attrs = node.getAttributes();
for (int i = 0; i < attrs.getLength(); i++)
{
Node attr = attrs.item(i);
ausgabe.print(" " + attr.getNodeName() + "=\"" + attr.getNodeValue() + "\"");
}
ausgabe.print(">");// Endtag
NodeList children = node.getChildNodes();
if (children != null)
{
int len = children.getLength();
for (int i = 0; i < len; i++)
_printDOMTree(children.item(i), ausgabe);
}
break;
}
// entity reference nodes behandeln
case Node.ENTITY_REFERENCE_NODE:
{
ausgabe.print("&");
ausgabe.print(node.getNodeName());
ausgabe.println(";");
break;
}
// 'cdata sections' ausgeben
case Node.CDATA_SECTION_NODE:
{
ausgabe.print("<![CDATA[');
ausgabe.print(node.getNodeValue());
ausgabe.println(']]>");
break;
}
// Text ausgeben
case Node.TEXT_NODE:
{
ausgabe.print(node.getNodeValue());
break;
}
// 'processing instruction' ausgeben
case Node.PROCESSING_INSTRUCTION_NODE:
{
ausgabe.println("<?");
ausgabe.print(node.getNodeName());
String data = node.getNodeValue();
{
ausgabe.print(" ");
ausgabe.print(data);
}
ausgabe.println("?>");
break;
}
}
if (type == Node.ELEMENT_NODE)
{
ausgabe.print("</");
ausgabe.print(node.getNodeName());
ausgabe.println('>');
}
} // DOMTree(Node, PrintWriter)
}
Alles anzeigen