第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取xml文件的層級結(jié)構(gòu) c?

如何獲取xml文件的層級結(jié)構(gòu) c?

富國滬深 2019-05-16 15:11:42
如何獲取xml文件的層級結(jié)構(gòu) c
查看完整描述

3 回答

?
慕容3067478

TA貢獻1773條經(jīng)驗 獲得超3個贊

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

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

#include<stdio.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指針當前位置相對于文件首的偏移字節(jié)數(shù)

fputs(c,fp2);//向輸出文件寫入一行字符串
fputc(b,fp2);//向輸出文件寫入一個字符
fprintf(fp2,"%d",a);//向輸出文件寫入一個整數(shù)

fclose(fp1);//關(guān)閉輸入文件
fclose(fp2);//關(guān)閉輸出文件,相當于保存
return 0;

查看完整回答
反對 回復 2019-05-26
?
隔江千里

TA貢獻1906條經(jīng)驗 獲得超10個贊

#include <atlbase.h>
#ifdef UNDER_CE
#include "Msxml.h"
#else
#import "msxml3.dll" named_guids, raw_interfaces_only, raw_native_types
using namespace MSXML2;
#endif
void main()
{
 CoInitialize(NULL); // 初始化COM。
 CComPtr<IXMLDOMDocument> spXMLDOM;
 HRESULT hr=spXMLDOM.CoCreateInstance (_uuidof(DOMDocument));
 // 創(chuàng)建解析器實例。
 VARIANT_BOOL bSuccess=false;
 hr=spXMLDOM->load(CComVariant(L"xmlfile.xml"),&bSuccess);
 // 裝載XML文檔。
 CComBSTR bstrSS(L"Device");
 CComPtr<IXMLDOMNode> spDevice;
 hr=spXMLDOM->selectSingleNode(bstrSS,&spDevice); //搜索"Device"。
 CComQIPtr<IXMLDOMElement> spDev;
 spDev=spDevice;
 // 設(shè)置"Device"的"name"屬性。
 hr= spDev->setAttribute(CComBSTR(L"name"),CComVariant("測試設(shè)備"));
 CComPtr<IXMLDOMNode> spModelNode;
 hr=spXMLDOM->createNode(CComVariant(NODE_ELEMENT),CComBSTR("Model"),NULL,& spModelNode); // 創(chuàng)建"Model"節(jié)點。

 CComPtr<IXMLDOMNode> spInsertedNode;

 hr=spDevice->appendChild (spModelNode,&spInsertedNode);
 // 添加新節(jié)點到"Device"節(jié)點下面。
 CComBSTR strID(L"3");
 hr=spInsertedNode->put_text(strID);// 設(shè)置"Model"的文本。
 hr=spXMLDOM->save(CComVariant("xmlfile.xml")); //保存文檔。

// CoUninitialize(); // 結(jié)束對COM的使用。

 return; 
}

以上是code。
msxml3.dll是windows自帶的dll,可以在c盤中找到。
 
還有就是你的xml文件做得不夠好,你可以把xml作成這樣的:
<account>
    <accountNum>***</accountNum>
    <password>***</password>
    <name>***</name>
    <balance>***</balance>
  ........
</account>
這樣xml文件的結(jié)構(gòu)才夠清晰,通俗易懂,添數(shù)據(jù)的時候也可以理解每個TAG里的內(nèi)容是什么意思。


查看完整回答
反對 回復 2019-05-26
  • 3 回答
  • 0 關(guān)注
  • 1275 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號