老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

c語言xml函數(shù) c語言xml函數(shù)庫

怎么用C語言寫一個簡單的XML文件

用VC吧,下面有一個例子,你參照下:

成都創(chuàng)新互聯(lián)長期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鳩江企業(yè)提供專業(yè)的成都網(wǎng)站建設(shè)、成都做網(wǎng)站,鳩江網(wǎng)站改版等技術(shù)服務(wù)。擁有10年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

void?CreateXml()

{

CoInitialize(NULL);

//?創(chuàng)建文檔

MSXML2::IXMLDOMDocument2Ptr?pXMLDoc?=?NULL;

//創(chuàng)建DOMDocument對象

HRESULT?hr?=?pXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument));

if?(!SUCCEEDED(hr))

{

return;

}

//?Create?the?Processing?Instruction

MSXML2::IXMLDOMProcessingInstructionPtr?pXMLProc?=?NULL;

pXMLProc?=?pXMLDoc-createProcessingInstruction("xml",?"version='1.0'?encoding='UTF-8'");

_variant_t?vNullVal;

vNullVal.vt?=?VT_NULL;

pXMLDoc-insertBefore(pXMLProc,?vNullVal);

//?創(chuàng)建根結(jié)點

_variant_t?varNodeType((short)MSXML2::NODE_ELEMENT);

MSXML2::IXMLDOMNodePtr?pXMLNodeRoot=?NULL;?

pXMLNodeRoot?=?pXMLDoc-createNode(varNodeType,?_T("Cases"),?_T(""));

//?添加根結(jié)點

pXMLDoc-appendChild(pXMLNodeRoot);

//?創(chuàng)建并添加下級結(jié)點

MSXML2::IXMLDOMNodePtr?pXMLNodeNode=?NULL;?

pXMLNodeNode?=?pXMLNodeRoot-appendChild(pXMLDoc-createElement(_T("Case")));

//?創(chuàng)建下級元素結(jié)點

MSXML2::IXMLDOMElementPtr?pXMLEle?=?NULL;

pXMLEle?=?pXMLDoc-createElement(_T("CopyFile"));

//?創(chuàng)建并設(shè)置下級結(jié)點屬性

MSXML2::IXMLDOMAttributePtr?pXMLAttr?=?NULL;

pXMLAttr?=?pXMLDoc-createAttribute(_T("src"));

pXMLAttr-nodeTypedValue?=?"C:\\test.txt";

pXMLEle-attributes-setNamedItem(pXMLAttr);

pXMLAttr?=?pXMLDoc-createAttribute(_T("dest"));

pXMLAttr-nodeTypedValue?=?"D:\\Test.txt";

pXMLEle-attributes-setNamedItem(pXMLAttr);

//?添加元素結(jié)點

pXMLNodeNode-appendChild(?pXMLEle);

MSXML2::IXMLDOMElementPtr?pXMLEle1?=?NULL;

pXMLEle1?=?pXMLDoc-createElement(_T("DelFile"));

pXMLEle1-appendChild(pXMLDoc-createTextNode("C:\\test.txt"));

//?添加元素結(jié)點

pXMLNodeNode-appendChild(?pXMLEle1);

//?保存文檔

pXMLDoc-save(_T("d:\\Test.xml"));

}

效果如下:

?xml?version="1.0"?encoding="UTF-8"???

Cases

Case

CopyFile?src="C:\test.txt"?dest="D:\Test.txt"?/?

DelFileC:\test.txt/DelFile?

/Case

/Cases

為了能夠讓MFC認(rèn)識MSXML2,我們需要引入相應(yīng)的dll,代碼如下;

#import "msxml4.dll"

用C語言讀取xml文件,怎么實現(xiàn)?

xml文件和txt文件相同,使用普通的文本操作函數(shù)即可讀取。

1、C語言標(biāo)準(zhǔn)庫提供了一系列文件操作函數(shù)。文件操作函數(shù)一般以f+單詞的形式來命名(f是file的簡寫),其聲明位于stdio.h頭文件當(dāng)中。例如:fopen、fclose函數(shù)用于文件打開與關(guān)閉;fscanf、fgets函數(shù)用于文件讀取;fprintf、fputs函數(shù)用于文件寫入;ftell、fseek函數(shù)用于文件操作位置的獲取與設(shè)置。

2、例程:

#includestdio.h

int?a;

char?b,c[100];

int?main(){

FILE?*?fp1?=?fopen("input.xml",?"r");//打開xml格式輸入文件

FILE?*?fp2?=?fopen("output.txt",?"w");//打開輸出文件

if?(fp1==NULL?||?fp2==NULL)?{//若打開文件失敗則退出

puts("不能打開文件!");

rturn?0;

}

fscanf(fp1,"%d",a);//從輸入文件讀取一個整數(shù)

b=fgetc(fp1);//從輸入文件讀取一個字符

fgets(c,100,fp1);//從輸入文件讀取一行字符串

printf("%ld",ftell(fp1));//輸出fp1指針當(dāng)前位置相對于文件首的偏移字節(jié)數(shù)

fputs(c,fp2);//向輸出文件寫入一行字符串

fputc(b,fp2);//向輸出文件寫入一個字符

fprintf(fp2,"%d",a);//向輸出文件寫入一個整數(shù)

fclose(fp1);//關(guān)閉輸入文件

fclose(fp2);//關(guān)閉輸出文件,相當(dāng)于保存

return?0;

}

C語言xml解析

把所有的數(shù)據(jù)當(dāng)做一個字符串

收到數(shù)據(jù)后先strstr(buffer,"?xml version=\"1.0\" encoding=\"UTF-8\"?");

如果返回的是NULL則表示沒有這段 退出

buffer是你收到的數(shù)據(jù)起始地址

c語言如何解析xml并將所有內(nèi)容存入數(shù)組

/*?前段時間恰好做過類似的東西,代碼可以給你參考下。

*??Xml配置見最后

*/

typedef?struct?SrcFileFmt

{

int???ColID;

char??ColCode[64];??????/*?字段英文名稱?*/

char??ColName[128];?????/*?字段中文名稱*/

char??ColType[20];??????/*?字段類型(包含長度)?*/

char??ColComment[128];??/*?字段描述?*/

}SrcFileFmt;

int?main(int?argc,?char?**argv)

{

SrcFileFmt?SrcFileFmt[128];

int?iNum?=?-1;

if?(?2??argc?)

{

printf("Usage:?%s?SrcXmlFile\n",?argv[0]);

return?-1;

}

iNum?=?parseSourceCfg(SrcCfgFile,?SrcFileFmt);

if?(iNum?==?-1)

{

return?-1;

}

return?0;

}

/*?調(diào)用此函數(shù)后,xml文件的內(nèi)容會被存儲到結(jié)構(gòu)體數(shù)組SrcFileFmt?srcfilefmt[]中

*?此函數(shù)依賴于libxml2-2.9.2.tar.xz

*/

int?parseSourceCfg(char?*FileName,?SrcFileFmt?srcfilefmt[])

{?/*?解析源文件xml,FileName?為源xml文件名?*/

xmlDocPtr?doc;

xmlNodePtr?cur,?root;

char?sFileName[64]?=?{'\0'};

int?cnt?=?0;

if?(FileName?==?NULL)

{

return?-1;

}

sprintf(sFileName,?"%s.xml",?FileName);

doc?=?xmlParseFile(sFileName);

if?(doc?==?NULL)

{

return?-1;

}

root?=?xmlDocGetRootElement(doc);

if?(root?==?NULL)?{

xmlFreeDoc(doc);

return(-1);

}

if?(xmlStrcmp(root-name,?(const?xmlChar?*)?"SrcRoot"))

{

xmlFreeDoc(doc);

return?-1;

}

cur?=?root-xmlChildrenNode;

while?(cur?!=?NULL)?

{

if?((!xmlStrcmp(cur-name,?(const?xmlChar?*)"Column")))

{

xmlChar?*key;

xmlNodePtr?cur_sub?=?cur;

cur_sub?=?cur_sub-xmlChildrenNode;

while?(cur_sub?!=?NULL)?

{

if?((!xmlStrcmp(cur_sub-name,?(const?xmlChar?*)"ColID")))?{

key?=?xmlNodeListGetString(doc,?cur_sub-xmlChildrenNode,?1);

killblank((char*)key);

srcfilefmt[cnt].ColID?=?atoi((char*)key);

xmlFree(key);

}

if?((!xmlStrcmp(cur_sub-name,?(const?xmlChar?*)"ColCode")))?{

key?=?xmlNodeListGetString(doc,?cur_sub-xmlChildrenNode,?1);

killblank((char*)key);

strcpy(srcfilefmt[cnt].ColCode,?(char*)key);

xmlFree(key);

}

else?if?((!xmlStrcmp(cur_sub-name,?(const?xmlChar?*)"ColName")))?{

key?=?xmlNodeListGetString(doc,?cur_sub-xmlChildrenNode,?1);

killblank((char*)key);

strcpy(srcfilefmt[cnt].ColName,?(char*)key);

xmlFree(key);

}

else?if?((!xmlStrcmp(cur_sub-name,?(const?xmlChar?*)"ColType")))?{

key?=?xmlNodeListGetString(doc,?cur_sub-xmlChildrenNode,?1);

killblank((char*)key);

strcpy(srcfilefmt[cnt].ColType,?(char*)key);

xmlFree(key);

}

else?if?((!xmlStrcmp(cur_sub-name,?(const?xmlChar?*)"ColComment")))?{

key?=?xmlNodeListGetString(doc,?cur_sub-xmlChildrenNode,?1);

killblank((char*)key);

strcpy(srcfilefmt[cnt].ColComment,?(char*)key);

xmlFree(key);

}

cur_sub?=?cur_sub-next;

}

cnt++;

}

cur?=?cur-next;

}

xmlFreeDoc(doc);?

return?cnt;

}

SrcRoot

Column

ColID1/ColID

ColCodekmh/ColCode

ColName字段1/ColName

ColTypeVARCHAR(11)/ColType

/Column

Column

ColID2/ColID

ColCodedfkmh/ColCode

ColName字段2/ColName

ColTypeVARCHAR(11)/ColType

/Column

Column

ColID3/ColID

ColCodehbh/ColCode

ColName字段3/ColName

ColTypeINTEGER(10)/ColType

/Column

/SrcRoot


分享文章:c語言xml函數(shù) c語言xml函數(shù)庫
文章位置:http://www.xueling.net.cn/article/dojigio.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 欧美日韩一区二区三区在线视频 | 一区二区无码免费视频网站 | 中文字幕在线视频免费观看 | 粗大猛烈进出呻吟声蜜臀视频 | 成人AV综合在线网站 | 亚洲最大的av在线 | 中日韩亚洲人成无码网站 | 又爽又黄axxx片免费观看 | 美女粉嫩极品国产在线2020 | 98色婷婷在线 | 亚洲AV无码精品国产成人 | 一色桃子中文字幕人妻熟女作品 | 欧美天堂精品久久久久久久噜噜噜 | 国产精品日产三级在线 | 99国产在线拍91揄自揄视 | 狠狠色丁香婷婷亚洲综合 | 国产1区在线观看 | 亚洲在线一区二区 | 久久久亚洲欧洲日产国产成人无码 | 人人玩人人添人人澡东莞 | 国产精品久久免费视频在线 | 亚洲成av人片在线观看无 | 亚洲欧洲日韩国内高清 | 女女女女bbbb毛片免费视频 | 伊人青青久久 | 亚洲色无码A片一区二区情欲 | bt天堂新版中文在线地址 | 抖音奶片无罩子52秒回放 | 亚洲国产精品久久无人区 | 精品亚洲欧美视频在线观看 | 成人免费av在线播放 | 就去色婷婷 | 亚洲欧洲精品成人久久奇米网 | 91久久久爱一区二区三区 | 久久日av | 好大好硬好爽18禁视频 | 久久亚洲中文字幕不卡一二区 | 国产精品视品 | 日韩成人在线免费观看 | 无码人妻丰满熟妇啪啪区日韩久久 | 蜜乳av一区 |