Newbie: XML erstellen (eventuell mit TinyXML)
- 
					
					
					
					
 Hallo Leute! 
 Ich bin ein absoluter C++ und XML Newbie ! !
 Und zwar möchte ich eine XML Datei erstellen!
 Die soll er dann auch Speichern.Ich weiß allerdings nicht wie ich das anstellen soll. 
 Hat jemand vielleicht ein schönes Beispiel parat, wie das funktionieren könnte.Vielen Dank für eure Hilfe. 
 
- 
					
					
					
					
 Push! 
 
- 
					
					
					
					
 Also, wenn du dir eine XML-Library aus dem Netzt ziehst (egal ob TynyXML, Xerces C++ oder MSXML-SDK) werden immer Tutorials mit Hello-Worlds dabei sein, die XML lesen und rausschreiben. Ich glaube nicht, das hier jemand für die einfach diese Hello-Worlds Copy-&-Paste hier rein kopiert, wenn du sie auch selber sehen kannst. 
 
- 
					
					
					
					
 Guck mal auf http://www.perfectxml.com/ für MSXML, unter Verwendung von SAX, gibts dort z.B. das: http://www.perfectxml.com/Articles/MSXML/September02.asp?pg=5 
 
- 
					
					
					
					
 Dafür brauchst du keinen XML Parser. Fürs erste reicht wahrscheinlich einfach XML-Tags in eine Datei zu schreiben. So etwas wie #include <fstream> int main() { std::ofstream out("foo.xml"); out << "<?xml version=\"1.0\" encoding=\"utf-8\"?>" "<foo>" "<bar>moep</bar>" "</foo>"; }
 
- 
					
					
					
					
 Merci kingruedi! 
 Genau so etwas simples habe ich gebraucht^^
 
- 
					
					
					
					
 *löl* 
 
- 
					
					
					
					
 Leider doch nicht  Muss schon eine XML schreiben die ich mit dem Inhalt von einem Array füllen muss. Mit einer f-schleife und dem beispiel unten, lässt sich das doch nicht realisieren, oder? 
 Habe schon etliches versucht, aber es klappt nicht.#include <fstream> int main() { 
 std::ofstream out("foo.xml");
 out << "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
 "<foo>"
 "<bar>moep</bar>"
 "</foo>";
 }Muss ich jetzt mit einem Parser arbeiten? 
 
- 
					
					
					
					
 Jein. Mal auf die schnelle: Du bräuchtest eigentlich nur eine Handvoll Funktionen, 
 um xml einiger maßen komfortabel auszugeben:class xmlprinter{ std::ostream &out; int level; printLevel() { /* level ausgeben */ } public: xmlprinter(std::ostream &out):out(out),level(0) void opentag(string tagname){printLevel();out << "<" <<tagname <<">\n";++level;} void closetag(string tagname){printLevel();out << "</" <<tagname <<">\n";--level;} void simpletag(string tagname){out << "<" <<tagname <<"/>\n";} };phlox 
 
- 
					
					
					
					
 Naja ich möchte XML ja nicht ausgeben, sondern eine XML Datei schreiben. 
 Das hätte ich mir etwas einfach vorgestelle. 
 Das Problem ist eher, dass ich wirklich erst mit C++ anfange (und das machen soll).
 Außerdem habe ich vorher noch nicht wirklich Objektorientiert programmiert.Hilft alles nichts, wird schon irgendwie klappen  
 Danke aber schon einmal für eure Hilfe!
 
- 
					
					
					
					
 Jannes schrieb: Naja ich möchte XML ja nicht ausgeben, sondern eine XML Datei schreiben. 
 Das hätte ich mir etwas einfach vorgestelle. 
 Das Problem ist eher, dass ich wirklich erst mit C++ anfange (und das machen soll).
 Außerdem habe ich vorher noch nicht wirklich Objektorientiert programmiert.Hilft alles nichts, wird schon irgendwie klappen  
 Danke aber schon einmal für eure Hilfe!Kannst du ja. ofstream xml("test.xml"); xmlprinter print(xml); print.opentag("tag1"); print.opentag("tag2"); xml << " value of tag2 "<< endl; print.closetag("tag2"); print.closetag("tag1"); print.opentag("tag3"); print.opentag("tag4"); xml << " value of tag4 "<< endl; print.closetag("tag4"); print.opentag("tag5"); xml << " value of tag5 "<< endl; print.closetag("tag5"); print.closetag("tag3");phlox