#include "tinyxml2.h"
#include <iostream>
void lineXML()
{
std::string buf = "";
tinyxml2::XMLDocument doc;
tinyxml2::XMLDeclaration* declaration = doc.NewDeclaration();
doc.InsertFirstChild(declaration); //InsertFirstChild
//------------------------InsertEndChild-------------------------------------
tinyxml2::XMLElement* package = doc.NewElement("package");
doc.InsertEndChild(package);
tinyxml2::XMLElement* packagehead = doc.NewElement("packagehead");
package->InsertEndChild(packagehead);
tinyxml2::XMLElement* BBH = doc.NewElement("BBH");
BBH->SetText("2.00");
packagehead->InsertEndChild(BBH);
tinyxml2::XMLElement* data = doc.NewElement("data");
package->InsertEndChild(data);
tinyxml2::XMLElement* XXZJW = doc.NewElement("XXZJW");
XXZJW->SetText("fsdfdsadsfs");
data->InsertEndChild(XXZJW);
//-------------------------------------------------------------
tinyxml2::XMLPrinter printer;
doc.Print(&printer);
buf = printer.CStr();
std::cout << buf << std::endl;
/*
<?xml version="1.0" encoding="UTF-8"?>
<package>
<packagehead>
<BBH>2.00</BBH>
</packagehead>
<data>
<XXZJW>fsdfdsadsfs</XXZJW>
</data>
</package>
*/
}
void stringToXML() //将字符串转为xml
{
char* bufXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<package>"
"<packagehead>"
"<BBH>2.00</BBH>"
"</packagehead>"
"<data>"
"<XXZJW>fdsafdsfd</XXZJW>"
"</data>"
"</package>";
tinyxml2::XMLDocument doc = new tinyxml2::XMLDocument;
doc.Parse(bufXML);
tinyxml2::XMLPrinter printer;
doc.Print(&printer);
const char* buf = printer.CStr();
std::cout << buf << std::endl;
}
void parseXML()
{
char* bufXML = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<package>"
"<packagehead>"
"<BBH>2.00</BBH>"
"</packagehead>"
"<data>"
"<XXZJW>fdsafdsfd</XXZJW>"
"</data>"
"</package>";
tinyxml2::XMLDocument doc = new tinyxml2::XMLDocument;
doc.Parse(bufXML);
tinyxml2::XMLElement* root = doc.FirstChildElement("package");
tinyxml2::XMLElement* sunNode = root->FirstChildElement("packagehead");
tinyxml2::XMLElement* sunNode1 = sunNode->FirstChildElement("BBH");
std::cout << sunNode1->GetText() << std::endl;
tinyxml2::XMLElement* sunData = root->FirstChildElement("data");
tinyxml2::XMLElement* sunXX = sunData->FirstChildElement("XXZJW");
std::cout << sunXX->GetText() << std::endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
parseXML();
return 0;
}
tinyxml2解析xml字符串以及将字符串转换为xml
最新推荐文章于 2020-12-18 19:45:24 发布