tinyxml2解析xml字符串以及将字符串转换为xml

#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;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值