如何获取xml文件的层级结构 c?

如何获取xml文件的层级结构 c


富国沪深
浏览 1198回答 3
3回答

慕容3067478

xml文件和txt文件相同,使用普通的文本操作函数即可读取。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。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);//从输入文件读取一个整数b=fgetc(fp1);//从输入文件读取一个字符fgets(c,100,fp1);//从输入文件读取一行字符串printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数fputs(c,fp2);//向输出文件写入一行字符串fputc(b,fp2);//向输出文件写入一个字符fprintf(fp2,"%d",a);//向输出文件写入一个整数fclose(fp1);//关闭输入文件fclose(fp2);//关闭输出文件,相当于保存return 0;

隔江千里

#include&nbsp;<atlbase.h> #ifdef&nbsp;UNDER_CE #include&nbsp;"Msxml.h" #else #import&nbsp;"msxml3.dll"&nbsp;named_guids,&nbsp;raw_interfaces_only,&nbsp;raw_native_types using&nbsp;namespace&nbsp;MSXML2; #endif void&nbsp;main() { &nbsp;CoInitialize(NULL);&nbsp;//&nbsp;初始化COM。 &nbsp;CComPtr<IXMLDOMDocument>&nbsp;spXMLDOM; &nbsp;HRESULT&nbsp;hr=spXMLDOM.CoCreateInstance&nbsp;(_uuidof(DOMDocument)); &nbsp;//&nbsp;创建解析器实例。 &nbsp;VARIANT_BOOL&nbsp;bSuccess=false; &nbsp;hr=spXMLDOM->load(CComVariant(L"xmlfile.xml"),&bSuccess); &nbsp;//&nbsp;装载XML文档。 &nbsp;CComBSTR&nbsp;bstrSS(L"Device"); &nbsp;CComPtr<IXMLDOMNode>&nbsp;spDevice; &nbsp;hr=spXMLDOM->selectSingleNode(bstrSS,&spDevice);&nbsp;//搜索"Device"。 &nbsp;CComQIPtr<IXMLDOMElement>&nbsp;spDev; &nbsp;spDev=spDevice; &nbsp;//&nbsp;设置"Device"的"name"属性。 &nbsp;hr=&nbsp;spDev->setAttribute(CComBSTR(L"name"),CComVariant("测试设备")); &nbsp;CComPtr<IXMLDOMNode>&nbsp;spModelNode; &nbsp;hr=spXMLDOM->createNode(CComVariant(NODE_ELEMENT),CComBSTR("Model"),NULL,&&nbsp;spModelNode);&nbsp;//&nbsp;创建"Model"节点。 &nbsp;CComPtr<IXMLDOMNode>&nbsp;spInsertedNode; &nbsp;hr=spDevice->appendChild&nbsp;(spModelNode,&spInsertedNode); &nbsp;//&nbsp;添加新节点到"Device"节点下面。 &nbsp;CComBSTR&nbsp;strID(L"3"); &nbsp;hr=spInsertedNode->put_text(strID);//&nbsp;设置"Model"的文本。 &nbsp;hr=spXMLDOM->save(CComVariant("xmlfile.xml"));&nbsp;//保存文档。 //&nbsp;CoUninitialize();&nbsp;//&nbsp;结束对COM的使用。 &nbsp;return;&nbsp; } 以上是code。 msxml3.dll是windows自带的dll,可以在c盘中找到。 &nbsp; 还有就是你的xml文件做得不够好,你可以把xml作成这样的: <account> &nbsp;&nbsp;&nbsp;&nbsp;<accountNum>***</accountNum> &nbsp;&nbsp;&nbsp;&nbsp;<password>***</password> &nbsp;&nbsp;&nbsp;&nbsp;<name>***</name> &nbsp;&nbsp;&nbsp;&nbsp;<balance>***</balance> &nbsp;&nbsp;........ </account> 这样xml文件的结构才够清晰,通俗易懂,添数据的时候也可以理解每个TAG里的内容是什么意思。
打开App,查看更多内容
随时随地看视频慕课网APP