为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

富国沪深 2019-05-16 15:11:42
如何获取xml文件的层级结构 c
查看完整描述

3 回答

?
慕容3067478

TA贡献1773条经验 获得超3个赞

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;

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

TA贡献1906条经验 获得超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));
 // 创建解析器实例。
 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;
 // 设置"Device"的"name"属性。
 hr= spDev->setAttribute(CComBSTR(L"name"),CComVariant("测试设备"));
 CComPtr<IXMLDOMNode> spModelNode;
 hr=spXMLDOM->createNode(CComVariant(NODE_ELEMENT),CComBSTR("Model"),NULL,& spModelNode); // 创建"Model"节点。

 CComPtr<IXMLDOMNode> spInsertedNode;

 hr=spDevice->appendChild (spModelNode,&spInsertedNode);
 // 添加新节点到"Device"节点下面。
 CComBSTR strID(L"3");
 hr=spInsertedNode->put_text(strID);// 设置"Model"的文本。
 hr=spXMLDOM->save(CComVariant("xmlfile.xml")); //保存文档。

// CoUninitialize(); // 结束对COM的使用。

 return; 
}

以上是code。
msxml3.dll是windows自带的dll,可以在c盘中找到。
 
还有就是你的xml文件做得不够好,你可以把xml作成这样的:
<account>
    <accountNum>***</accountNum>
    <password>***</password>
    <name>***</name>
    <balance>***</balance>
  ........
</account>
这样xml文件的结构才够清晰,通俗易懂,添数据的时候也可以理解每个TAG里的内容是什么意思。


查看完整回答
反对 回复 2019-05-26
  • 3 回答
  • 0 关注
  • 1197 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信