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

怎么用C语言写一个简单的XML文件,第1张

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

如果你的xml放在硬盘上固定的位置,你可以用

XmlDocument doc = new XmlDocument()

doc.Load("c:\\dfdfdf.xml");

如果你的xml嵌入了程序集,那么请你先把这个资源

变成一个流。你如果不知道怎么变,那么你要参考

ms的帮助,有专门的类处理嵌入的资源。

然后用doc.Load(stream);

右键点击那个xml,然后把生成 *** 作改为嵌入的资源。

Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("mynamespace.myxml.xml")


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/bake/11388566.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-15
下一篇2023-05-15

发表评论

登录后才能评论

评论列表(0条)

    保存