tinyxml无法正确解析const char *

时间:2019-08-30 02:43:12

标签: c++ tinyxml2

我使用 tinyxml2 处理包含xml的字符串。我使用函数Parse,但它只读取字符串的一部分并返回 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;
}

它将引发一个异常,告诉我pNodenullptr,并且我检查了xmlDoc的_charBuffer

它只包含

<application

1 个答案:

答案 0 :(得分:2)

我发现问题是xmlDoc不包含“名称”。 是“应用程序”中包含“名称”

tinyxml2::XMLElement* pRoot = xmlDoc.RootElement();
tinyxml2::XMLElement* pNode = pRoot->FirstChildElement("name");