0

サンプル コードに従って 1 つの要素の値を変更できましたが、他の要素のテキストを変更する方法がわかりません。

void setXML(unsigned short voltage_value, unsigned int current_value){
    XMLError eresult = xmlDoc.LoadFile("SavedData.xml");
    if (eresult != XML_SUCCESS){
        printf("Error: %i\n", eresult);
    }
    XMLNode * pRoot = xmlDoc.FirstChild();
    XMLElement * pElement = pRoot->FirstChildElement("Voltage");
    if (pElement == 0) {
        printf("Error");
    }
    else{
        pElement->SetText(voltage_value);
        //xmlDoc.SaveFile("/var/www/html/SavedData.xml");
    }   
    pElement = pElement->NextSiblingElement("Current");
    if (pElement == 0) {
        printf("Error");
    }
    else{
        pElement->SetText(current_value);
    }
    xmlDoc.SaveFile("/var/www/html/SavedData.xml");
}

<Battery_1>
    <Voltage>13.5</Voltage>
    <Current>1.5</Current>
    <Watt>22.5</Watt>
    <AmpHr>3.5</AmpHr>
    <Time>79345</Time>
    <Date day="11" month="7" year="2019"/>
</Battery_1>
<Battery_2>
    <Voltage>13.8</Voltage>
    <Current>1.4</Current>
    <Watt>20.5</Watt>
    <AmpHr>3.1</AmpHr>
    <Time>79345</Time>
    <Date day="11" month="7" year="2019"/>
</Battery_2>

実際には、バッテリー タグ以外のすべての値を更新する必要があります。 FirstChildElement("Voltage")常に見つかり、そのテキストを変更できます。次の要素に移動する方法がわかりません。たとえば、4 番目の要素にランダムに移動して、"AmpHr"その値/テキストを変更します。2 番目pElementは常に 0 であるため、単なる印刷エラーです。できるだけシンプルで、読みやすく、理解しやすいものにすることを目指していますが、私はこれが初めてです。

4

2 に答える 2