XML in C++



  • Hall Leute,
    ich habe Code entwickelt um Variablen in ein Text File und in eine XML zu schreiben.
    Meine Frage ist:
    wenn ich die Variablen in das Code Fenster rein schreibe werden die Variablen
    in mein Texz File geschrieben.
    Bei meiner XML sieht es da leider nicht so aus. Wie kann ich die Variablen
    in mine XML schreiben?
    Ich hänge das Code Snippet an dieser MAil an:

    Code Snippet

    #include <iostream>
    #include <fstream>
    #include <string>
    #include <sstream>

    using namespace std;

    Pictures///////////////////////////
    //-how can I integrate the Code to read the variables from the file
    //-

    int main()
    {
    string sname; //variables will read from the HALCON Script
    string Threshold;
    double intensity;
    double orientation;

    cout << "Filenname: ";
    cin >> sname;
    cout << endl;
    cout << "Threshold: ";
    cin >> Threshold;
    cout << "Intensity: ";
    cin >> intensity;
    cout << "Orientation: ";
    cin >> orientation;

    string sname2 = sname;

    sname.append(".txt"); //how can I set here an path for the .txt file

    ofstream newdatabase(sname2.c_str());

    newdatabase << "Threshold: " << Threshold << ' ' << endl << "Intensity: " << intensity << ' ' << endl << "Orientation: " << orientation << endl;
    newdatabase.close();

    //example for xml//wie kann ich die eingegebenen variablen in die xml schreiben???
    ofstream out;
    out.open("VariablesVision.xml");
    out << "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" << endl
    << "<Variablen>" << endl
    << "<Variable>" << endl
    << "<Variable1 =\" Threshold = 23\" Variable2=\Intensity = 45\">\n</Variable1>"
    << "</Variable>" << endl
    << "</Variablen>" << endl;

    out.close();

    }

    Hoffe Ihr könnt mir helfen.

    Vielen Vielen Dank[code="cpp"]



  • Das soll übersetzt werden? Kann ich nicht glauben.



  • So sieht das aus:

    Ergebnis in XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <Variablen>
    <Variable>
    <Variable1 =" Threshold = 23" Variable2=Intensity = 45">
    </Variable1></Variable>
    </Variablen>

    Ergebnis in .txt
    Threshold: 23
    Intensity: 45
    Orientation: 56



  • na, genauso, wie in die txt-Datei auch:

    ...
    << "<Threshold>" << Threshold << "</Threshold>" 
    ...
    


  • Emma19821 schrieb:

    Ergebnis in XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <Variablen>
    <Variable>
    <Variable1 =" Threshold = 23" Variable2=Intensity = 45">
    </Variable1></Variable>
    </Variablen>

    Das ist ja wohl kein gültiges XML...



  • Im Allgemeinen ist das Schreiben von XML nicht ganz so trivial, weil man stark darauf achten muss, dass z. B. so Zeichen wie "<" und "&" durch ihre Entity-Repräsentationen ersetzt werden. Bei reinen Zahlen ist das sicherlich unkritisch, aber den hemdsärmligen Ansatz, einfach die Tag-Strings auszugeben und dazwischen den Wert direkt aus der Variable, geht meistens früher oder später schief.

    Gruß
    Marco



  • verwende fürs Lesen/Schreiben von XML eine Lib wie z.B. pugixml ( https://pugixml.org ). Das erspart einem viel Ärger 😉



  • Benutze daher besser einen XML-Parser/Writer, z.B. TinyXml (2)


Anmelden zum Antworten