commit 2025-08-24 00:20 add and test ZCppMainTest/ZtCLoadXml_000.cpp
This commit is contained in:
@ -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
|
||||
|
||||
|
@ -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;
|
||||
}/*
|
||||
|
@ -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=\"<img src="/testfile" class="member_img_icon" />\"\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=\"<img src="/testfile" class="member_img_icon" />\"\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=\"<img src="/testfile" class="member_img_icon" />\"\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*/
|
||||
|
||||
|
@ -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));
|
||||
}/*
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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:
|
||||
};/*
|
||||
|
196
ZCppMainTest/ZtCLoadXml_000.cpp
Normal file
196
ZCppMainTest/ZtCLoadXml_000.cpp
Normal 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=\"<img src="/testfile" class="member_img_icon" />\"\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=\"<img src="/testfile" class="member_img_icon" />\"\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=\"<img src="/testfile" class="member_img_icon" />\"\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
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////////////*/
|
Reference in New Issue
Block a user