我有一个奇怪的 XML 问题,我正在使用 ESP 32 和 ESP8266。 这是我的代码,我无法获取字符串:
#include <tinyxml2.h>
using namespace tinyxml2;
char * testDocument = "<SessionInfo><Challenge>1234Hello iam a String messsage 4321</Challenge></SessionInfo>";
void Init_XML(){
XMLDocument xmlDocument;
if(xmlDocument.Parse(testDocument)!= XML_SUCCESS){
Serial.println("Error parsing");
return;
};
XMLNode * root = xmlDocument.FirstChild();
XMLElement * element = root->FirstChildElement("Challenge");
int val;
element->QueryIntText(&val);
Serial.println(val);
Serial.println("[INFO] Init_XML done.");
}
输出总是整数。
它总是返回整数,因为你使用了
QueryIntText
方法。
试试这个:
#include <tinyxml2.h>
using namespace tinyxml2;
char * testDocument = "<SessionInfo><Challenge>9601234b</Challenge></SessionInfo>";
void Init_XML(){
XMLDocument xmlDocument;
if(xmlDocument.Parse(testDocument)!= XML_SUCCESS){
Serial.println("Error parsing");
return;
};
XMLNode * root = xmlDocument.FirstChild();
XMLElement * element = root->FirstChildElement("Challenge");
const char* text = element->GetText();
Serial.println(text);
Serial.println("[INFO] Init_XML done.");
}