⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xml.h

📁 这是一个能够自动生成文档的程序
💻 H
字号:
#ifndef __XML_H__
#define __XML_H__
#pragma once


typedef CMapStringToPtr  CXmlMap;
#include "XmlNode.h"

#define XML_HEADER "<?xml version=\"1.0\" encoding=\"GB2312\" ?>"

//处理XML文档的象
class CXml  
{
public:
	//构造函数
	CXml(int iNotesCount=0);
	//析构函数
	virtual ~CXml();
	enum {TAG_UNKNOW, TAG_BEGIN, TAG_END, TAG_FULL};

public:
	//打开一个XML文件
    BOOL Open(LPCTSTR iFilePath);
	//保存内容到XML文件
	BOOL Save(LPCTSTR iFilePath=NULL);

    //添加一个节点
	BOOL AddNode(LPCTSTR iTagBegin, LPCTSTR iPath=NULL, 
		LPCTSTR iContent=NULL, LPCTSTR iTagEnd=NULL);

	//查找节点,参数为包含路径和始标签的完整路径
    CXmlNode* FindNode(LPCTSTR iFullPath);

	

private:
	//解析XML文档
	BOOL ParseXmlFile(char* ipText);
	//解析一个标签
	BOOL ParseTag(char*& ipText, CString& oTagStr, UINT& oTagType, BOOL iBegin); 
	//读取一对标签内的文本
	BOOL ReadContent(char*& ipText, CString& oContent);
	//建立新节点
	CXmlNode* CreateNode(LPCTSTR iTagBegin, LPCTSTR iContent=NULL, 
		LPCTSTR iTagEnd=NULL, CXmlNode* pFatherNode=NULL);

	//映射表初始化
	void InitNodesMap(int iNotesCount);
    //将节点保存到映射表
	void InsertIntoMap(CXmlNode* ipNode);

private:
	CXmlNode*      mpRootNode;    //根节点
	CString        mFilePath;
	UINT           mNodesCount;   //节点数量

	CXmlMap        mNodesMap;     //用路径加始标签作为关键字,保存节点影射

	UNIT_TEST(CXml)
};

DECLARE_TEST_DUMP(CXml)

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -