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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用C语言写一个简单的XML文件相关的知识,希望对你有一定的参考价值。

用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" 

参考技术A 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;

闰年用c语言怎么写?

1、打开Visual Studio编辑器,新建一个C语言文件,在最前面引入标准库文件,然后定义一个main主函数:

2、主函数中先定义一个int型的变量,用来存储用户输入的数字,然后yongscanf控制输入,输入的值传递给a变量,接着判断是否为闰年,判断条件为能被4整除而不能被100整除或者是能被400整除的数均为闰年,最后用printf函数将处理的结果输出:

3、运行程序,在控制台中输入一个年份,比如2020年,控制台输出的结果为2020年是闰年。以上就是用c语言编写判断闰年的方法:

参考技术A

闰年是指:能被400整除或者能被4整除并且不能被100整除的年份,即:n%400==0||(n%4==0&&n%100!=0)。

参考代码:

#include <stdio.h>
int main()

    int n;
    scanf("%d",&n);
    if(n%400==0||(n%4==0&&n%100!=0))
     printf("%d年是闰年\\n",n);
    else
     printf("%d年是平年\\n",n);
    return 0;
 
 /*
输出:
2000
2000年是闰年
 */

参考技术B #include <stdio.h>
int main()

int y;
scanf("%d",&y);
printf(!(y%400)||y%100&&!(y%4)?"闰年\n":"平年\n");
return 0;


谢谢,求采纳本回答被提问者和网友采纳
参考技术C #include <stdio.h>
int main(void)

int year,leap;
printf("enter year:");
scanf("%d",&year);
if(year%4==0)

if(year%100==0)

if(year%400==0)
leap=1;
else
leap=0;

else
leap=1;

else
leap=0;
if(leap)
printf("%d is ",year);
else
printf("%d is not\n",year);
printf("a leap year\n");
return 0;

看这个合适不?
参考技术D if(year %400 == 0)//是闰年
else if (year %4 ==0 && year %100 !=0)//是闰年

以上是关于怎么用C语言写一个简单的XML文件的主要内容,如果未能解决你的问题,请参考以下文章

c解析xml文件

怎么用c语言解析xml文件

用ANT打包,怎么写build.xml文件

怎么在DOS下用C语言写网络爬虫

用C语言编写了一个程序,源代码和工程文件都弄丢了,只剩下.exe的二进制程序文件。怎么反编译出.c

c语言报文转发脚本怎么写