我只有整数输出

问题描述 投票:0回答:1

我有一个奇怪的 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.");
}

输出总是整数。

c esp32 esp8266
1个回答
0
投票

它总是返回整数,因为你使用了

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.");
}
© www.soinside.com 2019 - 2024. All rights reserved.