• 大小: 621KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签:

资源简介

针对 XML文件的读取操作, CFileReader读取文件流程 OpenFile 打开PFS中的XML文件 OpenNativeFile 打开原始文件中的XML文件 OpenFile( PFS::CBaseFile& bf); 打开PFS中的文件对象 OpenData 打开一份内存数据 打开完成后,GetRootNode可以得到根节点的元素对象CINode CINode 的方法 GetType 得到元素类型 GetChildren 得到所有的子元素 GetAttributeNames 得到所以的属性列表 GetAttribute 得到某个属性的值 GetText 得到文件值 GetName 得到元素名字 CFileWriter写XML文件的流程 CONode GetRootNode(); 得到根节点元素 操作完成后,调用 Save( const std::wstring& filename); 保存到PFS SaveNative( const std::wstring& filename); 保存到原始目录 Save( PFS::CBaseFile& bf); 保存到PFS文件对象 SaveData( GNET::Octets& data); 保存到内存 CONode的方法 bool SetAttribute( const std::wstring& name, const std::wstring& value); 设置属性 CONode CreateSubElement( const std::wstring& name); 创建子元素 bool InsertText( const std::wstring& text); 设置文本 bool InsertCData( const std::wstring& data); 添加CDATA数据

资源截图

代码片段和文件信息


#include 

#include 
#include 
#include 
#include 
#include 
#include 

#include “../../pfs/pfs.h“
#include “../xmlio.h“

#include 
#include 

#pragma comment( lib “winmm.lib“)

void PrintTab( int nTab const wchar_t* info ...)
{
for( int i = 0; i < nTab; i ++)
printf( “\t“);

va_list vl;
va_start( vl info);
vwprintf( info vl);
va_end( vl);
}

void DumpNode( const xmlIO::CINode& node int nTab = 0)
{
PrintTab( nTab L“ node name = %s\n“ node.GetName().c_str());

xmlIO::CAttributesNames anames;
node.GetAttributeNames(anames);
std::wstring value;
for( xmlIO::CAttributesNames::iterator it = anames.begin(); it != anames.end(); ++ it)
{
std::wstring& onename = *it;

node.GetAttribute( onename value);
PrintTab( nTab L“ node attribute %s = %s\n“ onename.c_str() value.c_str());
}
std::wstring thistext = node.GetText();
if( !thistext.empty())
PrintTab( nTab L“ node text = %s\n“ thistext.c_str());
thistext = node.GetSubText();
if( !thistext.empty())
PrintTab( nTab L“ node subtext = %s\n“ thistext.c_str());

xmlIO::CNodeList nl;
node.GetChildren(nl);
for( xmlIO::CNodeList::iterator it = nl.begin(); it != nl.end(); ++ it)
DumpNode( *it nTab + 1);
}

int Checkxml( const std::wstring& filename)
{
xmlIO::CFileReader fr;
int nError = fr.OpenFile( filename);
if( xmlIO::EC_SUCCESS != nError)
return nError;

xmlIO::CINode root;
fr.GetRootNode(root);
DumpNode( root);

{
PFS::CDataBlock data;
fr.SaveAsOctets( data);
PFSX::CNativeFile nf;
nf.Open( L“d:\\temp\\outbin.xml“ PFS::FM_CREAT | PFS::FM_TRUNC PFS::FA_WRONLY);
nf.Write( data.GetData() data.GetSize());
}
{
xmlIO::CFileReader fr;
int nError = fr.OpenNativeFile( L“d:\\temp\\outbin.xml“);
xmlIO::CINode root;
fr.GetRootNode(root);
DumpNode( root );
}
fr.CloseFile();
return xmlIO::EC_SUCCESS;
}

int CheckNativexml( const std::wstring& filename)
{
xmlIO::CFileReader fr;
int nError = fr.OpenNativeFile( filename);
if( xmlIO::EC_SUCCESS != nError)
return nError;

xmlIO::CINode root;
fr.GetRootNode(root);

DumpNode( root);

fr.CloseFile();
return xmlIO::EC_SUCCESS;
}

int Createxml()
{
xmlIO::CFileWriter fw;

xmlIO::CONode node;
fw.GetRootNode(node);

xmlIO::CONode subnode;
fw.CreateElement( node L“test“ subnode);
subnode.SetAttribute( L“test1“ L“ou subnode.SetAttribute( L“test2“ L“ou>t2“);
subnode.SetAttribute( L“test3“ L““);

std::wstring strtest = L“asf1as;d&f..asf<>?..\\/“;
fw.InsertCData( subnode strtest);
fw.InsertText( subnode strtest);

xmlIO::CONode subnode11;
fw.CreateElement( subnode L“test11“ subnode11);
subnode11.SetAttribute( L“test11“ L“a11“);
subnode11.SetAttribute( L“haha“ L“hehe“);
subnode11.SetAttribute( L“test3“ L“a33“);
subnode11.InsertText( L“testtext“);

xmlI

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      27570  2016-03-14 09:53  xmlio\msdom.h

     文件       7657  2016-03-14 09:53  xmlio\projects\octetsio.vcproj

     文件       9205  2019-08-17 22:33  xmlio\projects\octetsio.vcxproj

     文件       1090  2019-08-17 22:33  xmlio\projects\octetsio.vcxproj.filters

     文件       5454  2016-03-14 09:53  xmlio\projects\xmlio.sln

     文件       7008  2016-03-14 09:53  xmlio\projects\xmlio.vcproj

     文件       9159  2016-03-14 09:53  xmlio\projects\xmlio.vcxproj

     文件        510  2016-03-14 09:53  xmlio\projects\xmlio.vcxproj.filters

     文件       4138  2016-03-14 09:53  xmlio\projects\xmliofulllib.vcproj

     文件       7234  2016-03-14 09:53  xmlio\projects\xmliolib.vcproj

     文件       8374  2016-03-14 09:53  xmlio\projects\xmliolib.vcxproj

     文件       2359  2016-03-14 09:53  xmlio\projects\xmliolib.vcxproj.filters

     文件       3881  2016-03-14 09:53  xmlio\projects\xmliolib2008.vcproj

     文件       9133  2016-03-14 09:53  xmlio\projects\xmliotest.cpp

     文件       7286  2016-03-14 09:53  xmlio\projects\xmltobin.vcproj

     文件       9081  2016-03-14 09:53  xmlio\projects\xmltobin.vcxproj

     文件        962  2016-03-14 09:53  xmlio\projects\xmltobin.vcxproj.filters

     文件       1762  2016-03-14 09:53  xmlio\readme.txt

     文件       1306  2016-03-14 09:53  xmlio\saxtest\ReadMe.txt

     文件      32091  2016-03-14 09:53  xmlio\saxtest\saxtest.cpp

     文件       4683  2016-03-14 09:53  xmlio\saxtest\saxtest.vcproj

     文件        294  2016-03-14 09:53  xmlio\saxtest\stdafx.cpp

     文件       1405  2016-03-14 09:53  xmlio\saxtest\stdafx.h

     文件       1490  2016-03-14 09:53  xmlio\src\abstractio.h

     文件       2033  2016-03-14 09:53  xmlio\src\msxmlio.cpp

     文件       3167  2016-03-14 09:53  xmlio\src\msxmlio.h

     文件       4767  2016-03-14 09:53  xmlio\src\octetsio.cpp

     文件       4657  2016-03-14 09:53  xmlio\src\octetsio.h

     文件       8581  2016-03-14 09:53  xmlio\src\octetsiobase.cpp

     文件       4521  2016-03-14 09:53  xmlio\src\octetsiobase.h

............此处省略25个文件信息

评论

共有 条评论

相关资源