0

tinyxml2 を使用して xml ファイルを追加する方法を探していましたが、何も見つかりませんでした。助けていただければ幸いです。

これが私のコードです:

function savedata() {

    XMLNode * pRoot = xmlDoc.NewElement("Cars");
    xmlDoc.InsertFirstChild(pRoot);
    XMLElement * pElement = xmlDoc.NewElement("Brand");

    pElement->SetText("Audi");

    pRoot->InsertEndChild(pElement);

    pElement = xmlDoc.NewElement("type");
    pElement->SetText("4x4");

    pRoot->InsertEndChild(pElement);

    pElement = xmlDoc.NewElement("Date");
    pElement->SetAttribute("day", 26);
    pElement->SetAttribute("month", "April");
    pElement->SetAttribute("Year", 2015);
    pElement->SetAttribute("dateFormat", "26/04/2015");

    pRoot->InsertEndChild(pElement);


    XMLError eResult = xmlDoc.SaveFile("SavedData1.xml");
    XMLCheckResult(eResult);
}

関数を実行するたびに、xml が上書きされ、既存のファイルに追加したいと考えています。

私のxmlファイル:

<Cars>
    <Brand>Audi</Brand>
    <Whatever>anothercrap</Whatever>
    <Date day="26" month="April" Year="2015" dateFormat="26/04/2015"/>
</Cars>

私のルートは既存のファイルに追加したいです。例えば、

<Cars>
    <Brand>Audi</Brand>
    <type>4x4</type>
    <Date day="26" month="April" Year="2015" dateFormat="26/04/2015"/>

   <Brand>BMWM</Brand>
   <type>truck</type>
   <Date day="26" month="April" Year="2015" dateFormat="26/04/2015"/>
</Cars>
4

2 に答える 2

0

XML は構造化されたデータであるため、ルート ノードを 2 回追加しないようにし、インデントなどを維持する必要があるため、テキストの追加は扱いにくく、エラーが発生しやすい可能性があります。

XML を読み込んで TinyXML で解析し、書き戻す方が簡単かもしれません。

于 2015-05-26T15:21:33.643 に答える