tinyxml 无法正确解析 const char*
tinyxml cannot parse const char* correctly
我使用tinyxml2来处理包含xml的字符串。我使用函数 Parse
但它只读取字符串的一部分和 return XML_SUCCESS
#include "XML/include/tinyxml2.h"
#include <string>
#include <iostream>
int main(int argc, char* argv[])
{
std::string xml("<application> <name>something</name> </application>");
tinyxml2::XMLDocument xmlDoc;
if (tinyxml2::XML_SUCCESS == xmlDoc.Parse(xml.c_str(), xml.size()))
{
tinyxml2::XMLElement* pNode = xmlDoc.FirstChildElement("name");
std::cout << pNode->GetText() << std::endl;
}
return 0;
}
它会抛出一个异常,告诉我 pNode
是一个 nullptr
,我检查了 xmlDoc 的 _charBuffer
。
它只包含
<application
我发现问题是 xmlDoc 不包含 "name"。
"application" 包含 "name"
tinyxml2::XMLElement* pRoot = xmlDoc.RootElement();
tinyxml2::XMLElement* pNode = pRoot->FirstChildElement("name");
我使用tinyxml2来处理包含xml的字符串。我使用函数 Parse
但它只读取字符串的一部分和 return XML_SUCCESS
#include "XML/include/tinyxml2.h"
#include <string>
#include <iostream>
int main(int argc, char* argv[])
{
std::string xml("<application> <name>something</name> </application>");
tinyxml2::XMLDocument xmlDoc;
if (tinyxml2::XML_SUCCESS == xmlDoc.Parse(xml.c_str(), xml.size()))
{
tinyxml2::XMLElement* pNode = xmlDoc.FirstChildElement("name");
std::cout << pNode->GetText() << std::endl;
}
return 0;
}
它会抛出一个异常,告诉我 pNode
是一个 nullptr
,我检查了 xmlDoc 的 _charBuffer
。
它只包含
<application
我发现问题是 xmlDoc 不包含 "name"。 "application" 包含 "name"
tinyxml2::XMLElement* pRoot = xmlDoc.RootElement();
tinyxml2::XMLElement* pNode = pRoot->FirstChildElement("name");