怎么用C语言写一个简单的XML文件

 我来答
ahcc08
推荐于2017-09-03 · 知道合伙人软件行家
ahcc08
知道合伙人软件行家
采纳数:11853 获赞数:51935
拥有丰富的软件开发经验。

向TA提问 私信TA
展开全部

用VC吧,下面有一个例子,你参照下:

void CreateXml()
{
    CoInitialize(NULL);
    // 创建文档
    MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
    //创建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);
    // 创建根结点
    _variant_t varNodeType((short)MSXML2::NODE_ELEMENT);
    MSXML2::IXMLDOMNodePtr pXMLNodeRoot= NULL; 
    pXMLNodeRoot = pXMLDoc->createNode(varNodeType, _T("Cases"), _T(""));
    // 添加根结点
    pXMLDoc->appendChild(pXMLNodeRoot);
    // 创建并添加下级结点
    MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL; 
    pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Case")));
    // 创建下级元素结点
    MSXML2::IXMLDOMElementPtr pXMLEle = NULL;
    pXMLEle = pXMLDoc->createElement(_T("CopyFile"));
    // 创建并设置下级结点属性
    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);
    // 添加元素结点
    pXMLNodeNode->appendChild( pXMLEle);
    MSXML2::IXMLDOMElementPtr pXMLEle1 = NULL;
    pXMLEle1 = pXMLDoc->createElement(_T("DelFile"));
    pXMLEle1->appendChild(pXMLDoc->createTextNode("C:\\test.txt"));
    // 添加元素结点
    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" /> 
        <DelFile>C:\test.txt</DelFile> 
    </Case>
</Cases>

为了能够让MFC认识MSXML2,我们需要引入相应的dll,代码如下;
#import "msxml4.dll" 

tattackor
推荐于2017-10-01 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:869万
展开全部
1、XML文件和普通的txt文本文件并无区别,所以用普通的文件操作函数fopen,fsacnf,fprintf即可读写XML文件。

2、例程:
#include<stdio.h>
#include<string.h>
int main()
{
FILE *fp1;
char get[1000],ch;
int i;
fp1=fopen("test.xml","r+");//以读写方式打开或者新建一个test.xml文件
printf("请输入需要输入到xml文件的字符串:\n");
gets(get);//输入
fflush(stdin);//清空缓存
for(i=0;i<strlen(get);i++)//将刚才输入的字符串写入test.xml文件
fprintf(fp1,"%c",get[i]);
fclose(fp1);//关闭文件指针
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式