【发布时间】:2019-12-20 13:24:51
【问题描述】:
我能够按照示例代码更改 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") 总是找到,我可以更改它的文本,无法弄清楚如何转到下一个元素或只是随机到第四个 "AmpHr" 并更改其值/文本。
第二个 pElement 总是 0 所以它只是打印错误;
为了使其尽可能简单、可读和易于理解,我是新手。
【问题讨论】: