commit 2025-08-24 00:20 add and test ZCppMainTest/ZtCLoadXml_000.cpp

This commit is contained in:
2025-08-24 00:21:09 +09:00
parent ea01f2d0bf
commit 0c436c267f
7 changed files with 251 additions and 193 deletions

View File

@ -578,14 +578,14 @@ namespace ZNsMain
typedef unsigned __int64 ZTypULength;
#else
typedef long ZTypLength ;
typedef unsigend long ZTypULen ;
typedef unsigend long ZTypULength ;
typedef unsigned long ZTypULen ;
typedef unsigned long ZTypULength ;
#endif
#else // !defined(__CPU_BIT_CNT__) || __CPU_BIT_CNT__<64
typedef long ZTypLength ;
typedef unsigend long ZTypULen ;
typedef unsigend long ZTypULength ;
typedef unsigned long ZTypULen ;
typedef unsigned long ZTypULength ;
#endif // !defined(__CPU_BIT_CNT__) || __CPU_BIT_CNT__<64

View File

@ -4117,7 +4117,10 @@ namespace ZNsMain
using namespace ZNsMain::ZNsChars ;
using ZNsMain::ZNsConst::CPC_DirDelimiter ;
ZTypLength VL_FindPos=ZtCMainChars::FindPosFromEnd
typedef ZNsChars::ZNsType::
ZtCTypeChars<TTypChar> ZCTypeChars ;
ZTypLength VL_FindPos = ZCTypeChars::FindPosFromEnd
( APC_PathName, CPC_DirDelimiter, AI_Length, 1 ) ;
if(VL_FindPos<0)
@ -6084,12 +6087,12 @@ namespace ZNsMain
}/*
void SetHandle(int AI_FileHandle)*/
void Init(int AI_FileHandle, std::LLong ALL_Offset=0)
void Init(int AI_FileHandle, ZNsMain::ZTypLong ALL_Offset=0)
{
this->aio_fildes=AI_FileHandle;
this->aio_offset=ALL_Offset ;
}/*
void Init(int AI_FileHandle, std::LLong ALL_Offset=0)*/
void Init(int AI_FileHandle, ZNsMain::ZTypLong ALL_Offset=0)*/
int Read(volatile char* AP_Buffer, int AI_BufSize)
{
@ -6876,13 +6879,13 @@ namespace ZNsMain
bool GetInfo(int AI_Resource)
{
::getrlimit(AI_Resource, this)==0;
return ::getrlimit(AI_Resource, this)==0;
}/*
bool GetInfo(int AI_Resource)*/
void SetInfo(int AI_Resource)
{
::setrlimit(AI_Resource, this)==0;
return ::setrlimit(AI_Resource, this)==0;
}/*
void SetInfo(int AI_Resource)*/
@ -7029,12 +7032,12 @@ namespace ZNsMain
// 이때 mi_HeadPos, mi_TailPos 에 유효한 값이 들어있다.
int VI_EmptyBuffCnt=0;
::iovec* VP_IOBuff =mo_IOBuff+mi_HeadPos;
int VI_EmptyBuffCnt= 0 ;
::iovec* VP_IOBuff = mo_IOBuff+mi_HeadPos;
for(int i=mi_HeadPos; i<=mi_TailPos; ++i)
{
if(AL_Length>=std::IntI(VP_IOBuff->iov_len))
if(AL_Length>=ZNsMain::ZTypInt(VP_IOBuff->iov_len))
{
AL_Length -= VP_IOBuff->iov_len;
ml_AllLen -= VP_IOBuff->iov_len;
@ -7048,10 +7051,10 @@ namespace ZNsMain
if(AL_Length<=0)
{
return VI_EmptyBuffCnt;
}/*
if(AL_Length<=0)*/
}
////////////////
}
else // AL_Length<std::IntI(VP_IOBuff->iov_len)
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)
{
if(APL_LastInvalidByte!=0)
*APL_LastInvalidByte=AL_Length;
@ -7062,7 +7065,7 @@ namespace ZNsMain
return VI_EmptyBuffCnt;
}/*
else // AL_Length<std::IntI(VP_IOBuff->iov_len)*/
else // AL_Length<ZNsMain::ZTypInt(VP_IOBuff->iov_len)*/
++VP_IOBuff;
}/*

View File

@ -4073,148 +4073,6 @@ namespace ZNsMain
>
class ZtCLoadXml //////////////////////////////////////////*/
namespace ZNsExam
{
template<typename TDymmy=void*> class ZtExamLoadXml
{
public:
static int Main(int AI_ArgCnt=0, const char* APP_ArgVal[]=0)
{
typedef ZNsMain::ZtCStringBase<char> ZCStringData ;
typedef ZNsMain::ZNsViewIFace::ZNsExam::ZtCViewLoadXml<
ZCStringData
/*/////////*/ > ZCViewLoadXml; ////////////////////////
typedef ZNsMain::ZNsType::ZtCTypeXmlInfo<
ZCStringData
/*/////////*/ > ZCTypeXmlInfo; ////////////////////////
typedef ZNsMain::ZtCXmlInfo<ZCTypeXmlInfo> ZCXmlInfo;
typedef ZNsMain::ZNsView::ZtCViewLoadXmlOfXmlInfo<
ZCXmlInfo
/*/////////*/ > ZCViewLoadXmlOfXmlInfo; ///////////////
typedef ZNsMain::ZtCLoadXml<ZCStringData> ZCLoadXml;
const char* CPC_XmlData1=
"<!-- My Comment0 --><? Header ?>\n"
"<!DOCTYPE ele0[ \n"
"<!ELEMENT ele1>\n"
"<!ATTLIST prop>\n"
"]>\n"
"<ele0 prop0 = \"prop00\" /><!-- My Comment1 -->\n"
"<ele1>ele1 data</ele1> <!-- My Comment2 -> ---- --->\n"
"<ele2 >ele2 data</ele2>\n"
"<요소3 prop1= \"prop1 value\" prop2 = \"prop2 value\" >"
" <ele3_1 prop3=\"prop3 value\" prop33=\"prop33 value\" > MyData"
" </ele3_1>\n"
" <ele3_2 prop4=\"prop4 value\" prop44=\"prop44 value\" > <![CDATA[ myCDATA ]]>\n"
" </ele3_2> \n"
"</요소3"
;
const char* CPC_XmlData2=
">\n<ele4 >ele4 data\n"
"</ele4>\n"
;;;;;;;;;;;;;;;;;;;;;;;;
const char* CPC_XmlDataOfID=
"<?xml version=\"1.0\" encoding=\"euc-kr\" ?>\n"
"<!DOCTYPE data[\n"
"<!ELEMENT data ANY>\n"
"<!ENTITY nbsp " " >\n"
"<!ATTLIST data id ID #REQUIRED>\n"
"]>\n"
"<data id = \"id-set\" desc=\"Xml 로 출력되는 홈페이지의 내용 예시\">\n"
"\n"
" <data id=\"id-info-login\" login_enum=\"1\" login_msg=\"Login Already\" login_rightnum=\"515\"\n"
" login_isadmin=\"0\" login_sessno=\"\" login_memno=\"1\" login_id=\"test\" login_name=\"\"\n"
" login_icon=\"/testfile\" login_iconhtml=\"\" login_point=\"0\" login_mail=\"\" login_level=\"0\"\n"
" login_no_fc=\"0\" login_no_fbinf=\"7\" login_notecnt=\"0\" login_type=\"0\" login_lastip=\"\"\n"
" login_lastlogin=\"2008-09-28 08:29:51.904506\" login_filecnt=\"0\" login_filesum=\"0\"\n"
" login_filemax=\"0\" />\n"
"\n"
" <data id=\"id-binfo-main\" binf_cntitem=\"12\" binf_cntpage=\"10\" binf_count=\"1001\" binf_maxnum=\"501\"\n"
" binf_config=\"360943\" binf_bbit_fbinf=\"0\" binf_rn_fbinf=\"0\" binf_no_fc=\"0\" />\n"
"\n"
" <data id = \"id-binfo-var\" attcnt = \"0\" />\n"
"\n"
" <data id=\"id-binfo-top-set\" recordcnt=\"3\" fieldcnt=\"16\">\n"
" <data id=\"id-binfo-top1\" no=\"1\" b_itemnum=\"1\" b_title=\"자유게시판입니다.\" b_tstyle=\"\"\n"
" b_wdate=\"2008-09-28\" b_no=\"1\" b_depth=\"0\" b_hit=\"0\" b_commcnt=\"0\" b_filecnt=\"0\"\n"
" b_userip=\"\" m_no=\"0\" m_point=\"0\" m_nick=\"\" m_userid=\"\" m_mail=\"\"\n"
" f_icon=\"&lt;img src=&quot;/testfile&quot; class=&quot;member_img_icon&quot; /&gt;\"\n"
" />\n"
" <data id=\"id-binfo-top2\" no=\"2\" b_itemnum=\"2\" b_title=\"술탄 메메트 2세 Title=2\" b_tstyle=\"\"\n"
" b_wdate=\"2008-09-28\" b_no=\"2\" b_depth=\"0\" b_hit=\"0\" b_commcnt=\"0\" b_filecnt=\"0\" b_userip=\"\" m_no=\"0\" m_point=\"0\" m_nick=\"\" m_userid=\"\" m_mail=\"\"\n"
" f_icon=\"&lt;img src=&quot;/testfile&quot; class=&quot;member_img_icon&quot; /&gt;\"\n"
" />\n"
" <data id=\"id-binfo-top3\" no=\"3\" b_itemnum=\"1-1\" b_title=\"술탄 메메트 2세 Title=1-1\"\n"
" b_tstyle=\"\" b_wdate=\"2008-09-28\" b_no=\"3\" b_depth=\"1\" b_hit=\"0\" b_commcnt=\"0\"\n"
" b_filecnt=\"0\" b_userip=\"\" m_no=\"0\" m_point=\"0\" m_nick=\"\" m_userid=\"\" m_mail=\"\"\n"
" f_icon=\"&lt;img src=&quot;/testfile&quot; class=&quot;member_img_icon&quot; /&gt;\"\n"
" />\n"
" </data><!-- id=\"binfo-top-set\" -->\n"
" <data id=\"id-binfo-modevar\" attcnt=\"5\" b_listbackcolor1=\"#ffeeff\" b_listbackcolor2=\"#cceedd\"\n"
" b_listbackcolorcnt=\"2\" b_listlinecolor=\"black\" b_listmouseovercolor=\"#ffc0cb\" />\n"
"\n"
"</data><!-- id=\"id-set\" -->\n";
/*const char* CPC_XmlDataOfID=*/
ZCViewLoadXml VO_CViewLoadXml;
ZCLoadXml VO_CLoadXml ;
VO_CLoadXml.Exec(VO_CViewLoadXml, CPC_XmlData1, ZNsMain::ZftLength(CPC_XmlData1));
VO_CLoadXml.Exec(VO_CViewLoadXml, CPC_XmlData2, ZNsMain::ZftLength(CPC_XmlData2));
cout<<endl;
cout<<"## Show Xml Info With 'ID' Attribute. Press Enter. ##"; cin.get();
VO_CLoadXml.clear(); ZCViewLoadXmlOfXmlInfo VO_CViewLoadXmlOfXmlInfo;
ZNsMain::ZNsEnum::ZERunEx VE_ERunEx=VO_CLoadXml.ExecAll( ////////////
VO_CViewLoadXmlOfXmlInfo,
CPC_XmlDataOfID ,
ZNsMain::ZftLength(CPC_XmlDataOfID)
/*/////////*/ ); /*////////////////////////////////////////////////*/
if(VE_ERunEx!=ZNsMain::ZNsEnum::ZERunEx_OK)
{
cout<<endl<<endl<<
"■ Error !! : Line="<<VO_CLoadXml.GetLineNo()<<", "<<
"CharNo=" <<VO_CLoadXml.GetCharNo() <<", "<<
"EWaitByte="<<VO_CLoadXml.GetMSG_EWaitByte() <<", "
"Error MSG="<<VO_CViewLoadXmlOfXmlInfo.GetErrorMSG()<<endl;
cin.get(); return 0;
}/*
if(VE_ERunEx!=ZNsMain::ZNsEnum::ZERunEx_OK)*/
VO_CViewLoadXmlOfXmlInfo.GetCXmlInfo().IterPreOrderElementTreeStd();
cout<<endl;
cout<<"## Show Xml ID ##"<<endl;
cout<<endl;
VO_CViewLoadXmlOfXmlInfo.GetCXmlInfo().IterElementIDSetStd();
return 0;
}/*
template<typename TDymmy=void*> class ZtExamLoadXml*/
public:
};/*
template<typename TDymmy=void*> class ZtExamLoadXml*/
}/*
namespace ZNsExam*/
}/*
namespace ZNsMain*/

View File

@ -2030,8 +2030,8 @@ namespace ZNsMain
########################################################################################*/
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef ;
typedef ZCCheckRef::TypeData TypeObject ;
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef ;
typedef typename ZCCheckRef::TypeData TypeObject ;
ZCChars VO_CCharsOrigin
(AR_CCharsOrigin.data(), AR_CCharsOrigin.size());
@ -2251,18 +2251,20 @@ namespace ZNsMain
)
/////////////////////////////////////////////////////////////////*/
{
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef ;
typedef ZCCheckRef::TypeData TypeObject ;
typedef ZNsMain::ZtCCheckRef<THelpType> ZCCheckRef ;
typedef typename ZCCheckRef::TypeData TypeObject ;
return FindPosReady<TReadyExec, ZCChars, TStringData, TypeObject>(
AR_CReadyExec ,
ZCCheckRef::PassData(AO_CHelpType) ,
ZCChars(AP_OriginData, AL_OriginLen),
ZCChars(AP_SearchData, AL_SearchLen),
ARR_CStrReadyBuff ,
ARRL_StartPos , // AP_OriginData 의 offset 이다.
ARRE_ERun
/*/////*/ ); /////////////////////////////////////////////////////
return FindPosReady<TReadyExec, ZCChars, TStringData, TypeObject>
(
AR_CReadyExec ,
ZCCheckRef::PassData(AO_CHelpType) ,
ZCChars(AP_OriginData, AL_OriginLen),
ZCChars(AP_SearchData, AL_SearchLen),
ARR_CStrReadyBuff ,
ARRL_StartPos , // AP_OriginData 의 offset 이다.
ARRE_ERun
);
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
}/*
template
<typename TReadyExec, typename TStringData, typename THelpType>
@ -4365,22 +4367,21 @@ namespace ZNsMain
for(TypeLength i=0; i<VL_ArrSize; ++i)
{
const bool CB_IsOK =
(
AL_Length > ARA_SearchArray.ItD(CI_IterEasyID).size()
);
VL_NowSize =
(
CB_IsOK ? ARA_SearchArray.ItD(CI_IterEasyID).size() : AL_Length
);
////////////
const TypeLength CI_NewSize =
ARA_SearchArray.ItD(CI_IterEasyID).size() ;
const bool CB_IsOK=ZtCMainChars::DoStart
VL_NowSize = /////////////////////////////
(
AL_Length > CI_NewSize ? CI_NewSize : AL_Length
);
//////////////////////////////////////////
const bool CB_IsOK = ZtCMainChars::DoStart
(
APC_Origin, ARA_SearchArray.ItD(CI_IterEasyID).data(),
AL_Length , ARA_SearchArray.ItD(CI_IterEasyID).size()
);
if(CB_IsOK) return 0; //////////////////
if(CB_IsOK) return 0; ////////////////////
ARA_SearchArray.MoveNextIter(RR(CI_IterEasyID));
}/*

View File

@ -852,14 +852,14 @@ namespace ZNsMain
ZtCObjAVL& operator=(const ZtCObjAVL& rhs)
{
if(this==&rhs) {return ;}
if(this==&rhs) {return *this;}
DeleteAll(); if(rhs.mp_HeadNode==0){ return; }
DeleteAll(); if(rhs.mp_HeadNode==0){ return *this;}
ZCNode* VP_Temp=rhs.mp_HeadNode;
ZCNode* VP_Tail=rhs.mp_HeadNode->mp_PrevNode;
do /**/
do //////
{
AddData(VP_Temp->mo_Type);

View File

@ -240,7 +240,7 @@ namespace ZNsMain
{
const bool CB_DoStop =
(
((ZCNodeList&)mo_CNodeList).ItD(VO_iter_Node).
((ZCNodeList&)mo_CNodeList).ItD(VO_iter_Node).template
IterPreOrder<TViewClass>
(AR_CViewClass, AI_StartDepth, i)
== ZNsMain::ZNsEnum::ZERun_NO
@ -285,7 +285,7 @@ namespace ZNsMain
{
const bool CB_DoStop =
(
((ZCNodeList&)mo_CNodeList).ItD(VO_iter_Node).
((ZCNodeList&)mo_CNodeList).ItD(VO_iter_Node).template
IterPostOrder<TViewClass>(AR_CViewClass, AI_StartDepth, i)
== ZNsMain::ZNsEnum::ZERun_NO
);
@ -446,13 +446,13 @@ namespace ZNsMain
template<typename TViewClass> void IterPreOrder(TViewClass& AR_CViewClass)
{
mo_RootNode.IterPreOrder<TViewClass>(AR_CViewClass, 0, 0);
mo_RootNode.template IterPreOrder<TViewClass>(AR_CViewClass, 0, 0);
}/*
template<typename TViewClass> void IterPreOrder(TViewClass& AR_CViewClass) */
template<typename TViewClass> void IterPostOrder(TViewClass& AR_CViewClass)
{
mo_RootNode.IterPostOrder<TViewClass>(AR_CViewClass, 0, 0);
mo_RootNode.template IterPostOrder<TViewClass>(AR_CViewClass, 0, 0);
}/*
template<typename TViewClass> void IterPostOrder(TViewClass& AR_CViewClass) */
@ -715,7 +715,7 @@ namespace ZNsMain
const bool CB_DoStop = ///////////////////////////////
(
((ZCNodeList&)mo_CNodeList).ItD(VO_iter_Node).
IterPreOrder<TViewClass>
template IterPreOrder<TViewClass>
(AR_CViewClass, AI_StartDepth. i)
== ZNsMain::ZNsEnum::ZERun_NO
);
@ -767,7 +767,7 @@ namespace ZNsMain
const bool CB_DoStop = ////////////////////////////////
(
((ZCNodeList&)mo_CNodeList).
ItD(VO_iter_Node).IterPostOrder<TViewClass>
ItD(VO_iter_Node).template IterPostOrder<TViewClass>
(AR_CViewClass, AI_StartDepth, i)
== ZNsMain::ZNsEnum::ZERun_NO
);
@ -936,9 +936,9 @@ namespace ZNsMain
void clear (){mo_RootNode.clear();}
template<typename TViewClass> void IterPreOrder (TViewClass AO_CViewClass)
{ mo_RootNode.IterPreOrder<TViewClass>(AO_CViewClass, 0); }
{ mo_RootNode.template IterPreOrder<TViewClass>(AO_CViewClass, 0); }
template<typename TViewClass> void IterPostOrder(TViewClass AO_CViewClass)
{ mo_RootNode.IterPostOrder<TViewClass>(AO_CViewClass, 0); }
{ mo_RootNode.template IterPostOrder<TViewClass>(AO_CViewClass, 0); }
public:
};/*

View File

@ -0,0 +1,196 @@

#include "ZCppMain/ZtCLoadXml.H"
namespace ZNsMain
{
namespace ZNsExam
{
template<typename TDymmy=void*> class ZtExamLoadXml
{
public:
static int Main(int AI_ArgCnt=0, const char* APP_ArgVal[]=0)
{
typedef ZNsMain::ZtCStringBase<char> ZCStringData ;
typedef ZNsMain::ZNsViewIFace::ZNsExam::ZtCViewLoadXml<
ZCStringData
/*/////////*/ > ZCViewLoadXml; ////////////////////////
typedef ZNsMain::ZNsType::ZtCTypeXmlInfo<
ZCStringData
/*/////////*/ > ZCTypeXmlInfo; ////////////////////////
typedef ZNsMain::ZtCXmlInfo<ZCTypeXmlInfo> ZCXmlInfo;
typedef ZNsMain::ZNsView::ZtCViewLoadXmlOfXmlInfo<
ZCXmlInfo
/*/////////*/ > ZCViewLoadXmlOfXmlInfo; ///////////////
typedef ZNsMain::ZtCLoadXml<ZCStringData> ZCLoadXml;
const char* CPC_XmlData1=
"<!-- My Comment0 --><? Header ?>\n"
"<!DOCTYPE ele0[ \n"
"<!ELEMENT ele1>\n"
"<!ATTLIST prop>\n"
"]>\n"
"<ele0 prop0 = \"prop00\" /><!-- My Comment1 -->\n"
"<ele1>ele1 data</ele1> <!-- My Comment2 -> ---- --->\n"
"<ele2 >ele2 data</ele2>\n"
"<요소3 prop1= \"prop1 value\" prop2 = \"prop2 value\" >"
" <ele3_1 prop3=\"prop3 value\" prop33=\"prop33 value\" > MyData"
" </ele3_1>\n"
" <ele3_2 prop4=\"prop4 value\" prop44=\"prop44 value\" > <![CDATA[ myCDATA ]]>\n"
" </ele3_2> \n"
"</요소3"
;
const char* CPC_XmlData2=
">\n<ele4 >ele4 data\n"
"</ele4>\n"
;;;;;;;;;;;;;;;;;;;;;;;;
const char* CPC_XmlDataOfID=
"<?xml version=\"1.0\" encoding=\"euc-kr\" ?>\n"
"<!DOCTYPE data[\n"
"<!ELEMENT data ANY>\n"
"<!ENTITY nbsp " " >\n"
"<!ATTLIST data id ID #REQUIRED>\n"
"]>\n"
"<data id = \"id-set\" desc=\"Xml 로 출력되는 홈페이지의 내용 예시\">\n"
"\n"
" <data id=\"id-info-login\" login_enum=\"1\" login_msg=\"Login Already\" login_rightnum=\"515\"\n"
" login_isadmin=\"0\" login_sessno=\"\" login_memno=\"1\" login_id=\"test\" login_name=\"\"\n"
" login_icon=\"/testfile\" login_iconhtml=\"\" login_point=\"0\" login_mail=\"\" login_level=\"0\"\n"
" login_no_fc=\"0\" login_no_fbinf=\"7\" login_notecnt=\"0\" login_type=\"0\" login_lastip=\"\"\n"
" login_lastlogin=\"2008-09-28 08:29:51.904506\" login_filecnt=\"0\" login_filesum=\"0\"\n"
" login_filemax=\"0\" />\n"
"\n"
" <data id=\"id-binfo-main\" binf_cntitem=\"12\" binf_cntpage=\"10\" binf_count=\"1001\" binf_maxnum=\"501\"\n"
" binf_config=\"360943\" binf_bbit_fbinf=\"0\" binf_rn_fbinf=\"0\" binf_no_fc=\"0\" />\n"
"\n"
" <data id = \"id-binfo-var\" attcnt = \"0\" />\n"
"\n"
" <data id=\"id-binfo-top-set\" recordcnt=\"3\" fieldcnt=\"16\">\n"
" <data id=\"id-binfo-top1\" no=\"1\" b_itemnum=\"1\" b_title=\"자유게시판입니다.\" b_tstyle=\"\"\n"
" b_wdate=\"2008-09-28\" b_no=\"1\" b_depth=\"0\" b_hit=\"0\" b_commcnt=\"0\" b_filecnt=\"0\"\n"
" b_userip=\"\" m_no=\"0\" m_point=\"0\" m_nick=\"\" m_userid=\"\" m_mail=\"\"\n"
" f_icon=\"&lt;img src=&quot;/testfile&quot; class=&quot;member_img_icon&quot; /&gt;\"\n"
" />\n"
" <data id=\"id-binfo-top2\" no=\"2\" b_itemnum=\"2\" b_title=\"술탄 메메트 2세 Title=2\" b_tstyle=\"\"\n"
" b_wdate=\"2008-09-28\" b_no=\"2\" b_depth=\"0\" b_hit=\"0\" b_commcnt=\"0\" b_filecnt=\"0\" b_userip=\"\" m_no=\"0\" m_point=\"0\" m_nick=\"\" m_userid=\"\" m_mail=\"\"\n"
" f_icon=\"&lt;img src=&quot;/testfile&quot; class=&quot;member_img_icon&quot; /&gt;\"\n"
" />\n"
" <data id=\"id-binfo-top3\" no=\"3\" b_itemnum=\"1-1\" b_title=\"술탄 메메트 2세 Title=1-1\"\n"
" b_tstyle=\"\" b_wdate=\"2008-09-28\" b_no=\"3\" b_depth=\"1\" b_hit=\"0\" b_commcnt=\"0\"\n"
" b_filecnt=\"0\" b_userip=\"\" m_no=\"0\" m_point=\"0\" m_nick=\"\" m_userid=\"\" m_mail=\"\"\n"
" f_icon=\"&lt;img src=&quot;/testfile&quot; class=&quot;member_img_icon&quot; /&gt;\"\n"
" />\n"
" </data><!-- id=\"binfo-top-set\" -->\n"
" <data id=\"id-binfo-modevar\" attcnt=\"5\" b_listbackcolor1=\"#ffeeff\" b_listbackcolor2=\"#cceedd\"\n"
" b_listbackcolorcnt=\"2\" b_listlinecolor=\"black\" b_listmouseovercolor=\"#ffc0cb\" />\n"
"\n"
"</data><!-- id=\"id-set\" -->\n";
/*const char* CPC_XmlDataOfID=*/
ZCViewLoadXml VO_CViewLoadXml;
ZCLoadXml VO_CLoadXml ;
VO_CLoadXml.Exec(VO_CViewLoadXml, CPC_XmlData1, ZNsMain::ZftLength(CPC_XmlData1));
VO_CLoadXml.Exec(VO_CViewLoadXml, CPC_XmlData2, ZNsMain::ZftLength(CPC_XmlData2));
cout<<endl;
cout<<"## Show Xml Info With 'ID' Attribute. Press Enter. ##"; cin.get();
VO_CLoadXml.clear(); ZCViewLoadXmlOfXmlInfo VO_CViewLoadXmlOfXmlInfo;
ZNsMain::ZNsEnum::ZERunEx VE_ERunEx=VO_CLoadXml.ExecAll( ////////////
VO_CViewLoadXmlOfXmlInfo,
CPC_XmlDataOfID ,
ZNsMain::ZftLength(CPC_XmlDataOfID)
/*/////////*/ ); /*////////////////////////////////////////////////*/
if(VE_ERunEx!=ZNsMain::ZNsEnum::ZERunEx_OK)
{
cout<<endl<<endl<<
"■ Error !! : Line="<<VO_CLoadXml.GetLineNo()<<", "<<
"CharNo=" <<VO_CLoadXml.GetCharNo() <<", "<<
"EWaitByte="<<VO_CLoadXml.GetMSG_EWaitByte() <<", "
"Error MSG="<<VO_CViewLoadXmlOfXmlInfo.GetErrorMSG()<<endl;
cin.get(); return 0;
}/*
if(VE_ERunEx!=ZNsMain::ZNsEnum::ZERunEx_OK)*/
VO_CViewLoadXmlOfXmlInfo.GetCXmlInfo().IterPreOrderElementTreeStd();
cout<<endl;
cout<<"## Show Xml ID ##"<<endl;
cout<<endl;
VO_CViewLoadXmlOfXmlInfo.GetCXmlInfo().IterElementIDSetStd();
return 0;
}/*
static int Main(int AI_ArgCnt=0, const char* APP_ArgVal[]=0)*/
public:
};/*
template<typename TDymmy=void*> class ZtExamLoadXml*/
}/*
namespace ZNsExam*/
}/*
namespace ZNsMain*/
int main(int AR_ArgCnt, char* APP_ArgVal[])
{
return ZNsMain::ZNsExam::ZtExamLoadXml<>::Main();
}/*
int main(int AR_ArgCnt, char* APP_ArgVal[])*/
/*////////////////////////////////////////////////////////////////////////////////////////
■ cigwin 컴파일
// g++ -mno-cygwin -o ZtCLoadXml_000.exe ZtCLoadXml_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
// g++ -mno-cygwin -o ZtCLoadXml_000_D.exe ZtCLoadXml_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
■ mingw 컴파일
// /usr/local/mingw/bin/g++.exe -o ZtCLoadXml_000.exe ZtCLoadXml_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300
// /usr/local/mingw/bin/g++.exe -o ZtCLoadXml_000_D.exe ZtCLoadXml_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D__CYGWIN32__ -D__VISUAL_CPP_VER__=200300 -D_DEBUG
■ Linux 컴파일
// g++ -o ZtCLoadXml_000.exe ZtCLoadXml_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/
// g++ -o ZtCLoadXml_000_D.exe ZtCLoadXml_000.cpp -I../../my_CPP/CPP_Main/ -I../../my_CPP/CPP_Std/ -D_DEBUG
■ Ubuntu 컴파일
g++ -o ZtCLoadXml_000.exe ZtCLoadXml_000.cpp -I../
g++ -o ZtCLoadXml_000_D.exe ZtCLoadXml_000.cpp -I../ -D_DEBUG
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ gcc --version
gcc (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
sauron@q381-2673:/mnt/e/my_CPP/ZCpp/ZCppMainTest$ date
Sun Aug 24 00:05:51 DST 2025
■ 실행
./ZtCLoadXml_000.exe
./ZtCLoadXml_000_D.exe
////////////////////////////////////////////////////////////////////////////////////////*/