*.csv Datein in XML konvertieren

Es funktioniert einwandfrei.
Leider doch nicht:mad:

Ich bin echt am verzweifeln.
Jetzt habe ich schon wieder ein problem. Meine csv datei hat zwei verschiedene längen.
Damit meine ich dass die erste zeile 19 und die zweite zeile 18 werte hat. Dies führt jetzt dazu dass er mir bei dem 18 wert aufhört und kein tag mehr erzeugt. Es fehlt mir also der <Gat_Kommentar> </Gat_Kommentar> tag ohne ihhalt. Und ich weiss schon wo der fehler ist:
Code:
	for (int i = 0; i < data.length ; i++)
	{
		Element element = document.createElement(head[i]);
		zero.appendChild(element);				
		element.appendChild(document.createTextNode(data[i]));
	}

weiss aber leider nicht wie ich ihn umgehen kann.
zerix ich hoffe ich belästige dich nicht all zu sehr. du bist der einzige der mir antwortet.

Deshalb gleich noch eine Frage:
Man kann in Xml keine tags erzeugen die mit ziffern beginnen. Jetzt habe ich aber das problem dass ich in meiner csv datei zeilen habe die mit zahlen beginnen.
Kann ich dieses Problem irgendwie umgehen oder gibt es da überhaupt keine möglichkeit (davon gehe ich aus).

Danke im voraus
 
hi, hab ne Frage eigentlich allgemein. War mir nicht sicher ob ich ein neues Thema erstellen soll, da es ja eigentlich noch zu diesem code gehört. Ich poste es jetzt einfach mal hier rein. (Beschwerden bitte an mich :) )
und zwar weiss ich nicht wie ich dieses element erzeugen soll.
Code:
<sDISPlusImport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="import.xsd">
ich krieg es einfach nicht hin. sDISPlusImport ist mein root element.
Danke für jeden tip...

Lg Serpil
 
Java:
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class AttributeDemo {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		factory.setNamespaceAware(true);
		DocumentBuilder builder = factory.newDocumentBuilder();
		Document document = builder.newDocument();

		Element root = document.createElement("sDISPlusImport");
		root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance",
				"xsi:noNamespaceSchemaLocation", "import.xsd");

		document.appendChild(root);

		TransformerFactory.newInstance().newTransformer().transform(
				new DOMSource(document), new StreamResult(System.out));

	}

}

Ausgabe:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="no"?><sDISPlusImport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="import.xsd"/>
 
Zuletzt bearbeitet:
erstmal danke für die antwort. Hab es mir am Wochenende in Ruhe angeschaut. Ich kriege aber nicht das gleiche raus wie du!

Bei mir sieht die Ausgabe so aus:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<sDISPlusImport xsi:noNamespaceSchemaLocation="import.xsd"/>

hab bisschen rumprobiert weiss aber nicht woran es liegt.

Eine Frage hätte ich noch:
Beim StreamResult steht ja System.out der gibt es in der console aus. Ich krieg es nicht hin dass der mir das in meine xml datei einbindet.
Wäre echt super wenn du mir da auch helfen könntest.

Viele Liebe Grüße
Serpil
 
Hallo,

wenn du das in eine Datei schreiben willst, musst du einen FileOutputStream einbinden. System.out ist auch einfach nur ein OutputStream. Du kannst an der Stelle jeden OutputStream übergeben den du willst.

MFG

zEriX
 
hi,
danke dier vielmals. Habs grad auch rausgekriegt und wollte es reinschreiben aber du warst ein tick schneller. :)
Lg Serpil
 
habs jetzt hingekriegt. weiss nicht ob das so elegant ist aber es funktioniert auf jeden fall.
Falls es jemanden interessiert hier mein code:
Code:
Element root = document.createElement("sDISPlusImport" );
root.setAttributeNS(" ","xmlns:xsi","http://www.w3.org/2001/XMLSchema-instance");
root.setAttributeNS(" ","xsi:noNamespaceSchemaLocation","import.xsd");	
document.appendChild(root);
Code:
OutputStream out = new FileOutputStream(XMLFile);  
PrintWriter writer = new PrintWriter(out);
TransformerFactory.newInstance().newTransformer().transform(new DOMSource(document), new StreamResult(out));
writer.close();

und hier die Ausgabe:
Code:
<?xml version="1.0" encoding="UTF-8"?>
<sDISPlusImport xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:noNamespaceSchemaLocation="import.xsd">

Gruß Serpil
 

Neue Beiträge

Zurück