我能够按照示例代码更改 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"
并更改它的值/文本。第二个pElement
总是 0,所以它只是打印错误;希望使它尽可能简单,可读且易于理解,我对此并不陌生。