サンプル コードに従って 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 であるため、単なる印刷エラーです。できるだけシンプルで、読みやすく、理解しやすいものにすることを目指していますが、私はこれが初めてです。