純C/C++ 存取XML [CB_readXML]

純C/C++ 存取XML [CB_readXML]

純C/C++ 存取XML [CB_readXML]


GITHUB: https://github.com/jash-git/CB_readXML.git


code

#include <iostream>
#include "tinyxml.h"
#include "tinystr.h"
using namespace std;
void printNode(TiXmlNode* node);
int main()
{
    cout << "Hello world!" << endl;
	TiXmlDocument doc("test_jash.xml");
	doc.LoadFile();
	TiXmlNode *root = doc.RootElement();
	printNode(root);
    return 0;
}
void printNode(TiXmlNode* node) //迴圈列印所有的節點
{
	if(node == NULL) return;
		cout<<"["<<node->Value()<<"]"<<endl; //顯示節點的名稱
	TiXmlElement* element = node->ToElement();

	if(element && element->GetText()) //顯示節點的內容
           	cout<<"      -->"<< element->GetText()<<endl;

	if(element && element->FirstAttribute()) //顯示節點屬性
	{
		TiXmlAttribute *IDAttribute = element->FirstAttribute();
		while ( IDAttribute )
		{
			cout<<"      -->"<<"Attribute name="<<IDAttribute->Name()<<"\t";
			cout<<"       ::"<< IDAttribute->Value() << endl;
			IDAttribute=IDAttribute->Next();
		}
	}

	TiXmlElement* child = node->FirstChildElement();
	while(child!=NULL)
	{
		printNode(child); //遞迴調用顯示節點
		child = child->NextSiblingElement();
	}
}
© 2020 GitHub, Inc.

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *