📄 xmlnode.cpp
字号:
#include "stdafx.h"
#include "XmlNode.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
BEGIN_TEST_DUMP(CXmlNode)
TEST_DUMP(mPath)
TEST_DUMP(mTagBegin)
TEST_DUMP(mTagEnd)
TEST_DUMP(mContent)
TEST_DUMP(mDeep)
END_TEST_DUMP()
CXmlNode::CXmlNode(CXmlNode* ipFatherNode)
{
mpFatherNode = ipFatherNode;
mDeep = 0;
mpFatherNode = NULL;
}
CXmlNode::~CXmlNode()
{
POSITION pos = mChildNodeList.GetHeadPosition();
while(pos != NULL)
{
delete mChildNodeList.GetNext(pos);
}
mChildNodeList.RemoveAll();
}
BOOL CXmlNode::AddChildNode(CXmlNode* pNewNode)
{
POSITION pos = mChildNodeList.GetHeadPosition();
while(pos != NULL)
{
CXmlNode* pChildNode = mChildNodeList.GetNext(pos);
if(pChildNode->GetTagBegin() == pNewNode->GetTagBegin())
{
return FALSE;
}
}
mChildNodeList.AddTail(pNewNode);
return TRUE;
}
void CXmlNode::GetFullText(CString& oText)
{
CString blank = '\n';
for(int i=1; i<mDeep; i++)
blank += '\t';
oText += blank;
oText += mTagBegin;
oText += mContent;
POSITION pos = mChildNodeList.GetHeadPosition();
while(pos != NULL)
{
CXmlNode* pChildNode = mChildNodeList.GetNext(pos);
pChildNode->GetFullText(oText);
}
if(mContent.IsEmpty())
oText += blank;
oText += mTagEnd;
}
void CXmlNode::Init(CXmlNode* ipFatherNode, LPCTSTR iTagBegin)
{
mTagBegin = iTagBegin;
mpFatherNode = ipFatherNode;
int deep = 0;
if(ipFatherNode != NULL)
{
deep = ipFatherNode->GetDeep();
mPath = ipFatherNode->GetPath();
mPath += ipFatherNode->GetTagBegin();
}
mDeep = deep + 1;
}
UINT CXmlNode::GetNodesCount()
{
int count = 1;
POSITION pos = mChildNodeList.GetHeadPosition();
while(pos != NULL)
{
CXmlNode* pChildNode = mChildNodeList.GetNext(pos);
count += pChildNode->GetNodesCount();
}
return count;
}
void CXmlNode::SetContent(LPCTSTR iContent)
{
mContent = iContent;
mContent.Replace("&", "&");
mContent.Replace("<", "<");
mContent.Replace(">", ">");
mContent.Replace("\"", """);
mContent.Replace("\'", "'");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -