TinyXml einträge hinzufügen



  • Hi Leute
    Ich versuch in eine Gruppe einen neuen Eintrag zu machen:
    games.xml

    <MyGames>
        <Game ID="1" NAME="ABC" PATH="/abc/abc/acb" />
        <Game ID="2" NAME="ABC" PATH="/abc/abc/acb" />
        <Game ID="3" NAME="ABC" PATH="/abc/abc/acb" />
    </MyGames>
    

    jetzt will ich :

    <Game ID="4" NAME="ABC" PATH="/abc/abc/acb" />
    

    in die Gruppe MyGames eintragen mein Problem ist das ich nicht weiß wie ich das machen soll. Weiß jemand von euch wie das unter TinyXml geht?

    Edit:
    Hier noch der Quelltext:

    int Game::new_game(std::string game_name, std::string game_path)
    {
        int id;
    
        TiXmlDocument doc("./config/self.conf");
        TiXmlElement data("MyGames");
    
        doc.LoadFile();
    
        id = self_list();
    
        const bool NEW_DATA=(id==-1);
    
        if(NEW_DATA)
        {
            id=0;
        }
    
        TiXmlElement name("Game");
        name.SetAttribute("ID", id+1);
        name.SetAttribute("NAME", game_name.c_str());
        name.SetAttribute("PATH", game_path.c_str());
    
        if(NEW_DATA)
        {
            data.InsertEndChild(name);
            doc.InsertEndChild(data);
        }else{
            doc.InsertEndChild(name);
        }
    
        if(doc.SaveFile())
        {
            return -5;
        }
    
        return 0;
    }
    

    Gruß,
    Nico



  • Dein XML ist Müll. Mach die Attribute zu Tags.
    http://software.ellerton.net/tinyxml.html



  • müll.0 schrieb:

    Dein XML ist Müll. Mach die Attribute zu Tags.
    http://software.ellerton.net/tinyxml.html

    Dein Link ist Müll. Er erklärt überhaupt nicht was du meinst.

    @topic:
    Um die von dir gewünschte Struktur zu erhalten, musst du dir erst das entsprechende Element suchen, dann kannst du in dieses neue Children einhängen. Du erstellst jetzt immer ein neues Element "MyGames".
    Wie das genau mit TinyXml geht, kann ich dir aber nicht sagen.



  • @l'abra d'or
    Ich muss dich verbessern.
    Er erstellt nur ein neues Element wenn keine Datei vorhanden ist oder wenn die Datei kein Inhalt hat.

    Das sieht man hier dran:

    /*
    *
    *
    *
    */
        id = self_list();
    
        const bool NEW_DATA=(id==-1);
    
        if(NEW_DATA)
        {
            id=0;
        }
    /*
    *
    *
    *
    */
        if(NEW_DATA)
        {
            data.InsertEndChild(name);
            doc.InsertEndChild(data);
        }else{
            doc.InsertEndChild(name);
        }
    

    Stimmt ich muss ja noch nach dem Child suchen bin ich blöd 🙄


Anmelden zum Antworten