我想把自己vc++程序中的数据保存成xml类形的文档,不知道该怎么生成,而且要用xml dom的相应方法,那个大人有例子可以参考一下啊?或者说说大致的流程,万分感谢阿!

解决方案 »

  1.   

    在google搜ms xml相信可以找到你所需要的。
    如果要用c语言的xml库,有libxml(http://xmlsoft.org/)
      

  2.   

    libxml、libxml++、mxdom之类的有很多
      

  3.   

    www.sf.net 去下载tinyxml,带有例子程序,一看就明白了。
      

  4.   

    就用MS的吧,XMLDOM,里面的SDK上有完整的例子
      

  5.   

    http://blog.csdn.net/xmagicx/archive/2004/10/28/156001.aspx
      

  6.   

    tinyxml相比较MSXML,tinyxml功能较少,但却使用简单,使用C++编写,MSXML需要一点COM的知识;tinyxml有源码,有示例。
      

  7.   

    #include "msxml.h"
    #include "atlbase.h"
    #import "msxml4.dll"
    using namespace MSXML2;......................
                      MSXML2::IXMLDOMDocumentPtr pDoc;
    MSXML2::IXMLDOMElementPtr xmlRoot;
    MSXML2::IXMLDOMElementPtr pNode;
    MSXML2::IXMLDOMElement *pElement=NULL;

    //////////新建xml文档
     hr=CoCreateInstance(__uuidof(MSXML2::DOMDocument40),NULL,CLSCTX_INPROC_SERVER,
    __uuidof(MSXML2::IXMLDOMDocument),(void**)&pDoc);
    if ( FAILED(hr) )
    {
    return ;
    }
    hr = pDoc->put_async(VARIANT_FALSE); 
    if ( FAILED(hr) )
    {
    return ;
    }
    hr = pDoc->put_validateOnParse(VARIANT_FALSE);
    if ( FAILED(hr) )
    {
    return ;
    }
    hr = pDoc->put_resolveExternals(VARIANT_FALSE);
    if ( FAILED(hr) )
    {
    return ;
    }
    hr = pDoc->loadXML("<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n<top>\n</top>");                  CString filename ="文件名";
    VARIANT vFileName;
    V_BSTR(&vFileName) = filename.AllocSysString();
    V_VT(&vFileName) = VT_BSTR;
    pDoc->save(vFileName);
    //////////////////////还要有几个dll
      

  8.   

    email:[email protected] 偶给你发.带例子:)
      

  9.   

    1.
    BOOL CXmlApp::InitInstance()
    {
    AfxOleInit();
    ...
    }2.
    #import <msxml4.dll>
    3.
    void CXmlDlg::OnButton1() 
    {
    // TODO: Add your control notification handler code here         MSXML2::IXMLDOMDocumentPtr pDoc; 
             MSXML2::IXMLDOMElementPtr  xmlRoot ;          //创建DOMDocument对象 
             HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30)); 
             if(!SUCCEEDED(hr)) 
             {                
                       MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!"); 
             }            
            //根节点的名称为china 
             pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot); 
             pDoc->raw_appendChild(xmlRoot, NULL); 
           
             MSXML2::IXMLDOMElementPtr  childNode ;         
             pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode); 
             childNode->Puttext("WuHan");//节点值 
             childNode->setAttribute("population","8,000,000");//属性名,属性值 
             childNode->setAttribute("area","10000"); 
             xmlRoot->appendChild(childNode); 
             
             pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode); 
             childNode->Puttext("ShangHai"); 
             childNode->setAttribute("population","12,000,000"); 
             childNode->setAttribute("area","12000"); 
             xmlRoot->appendChild(childNode);              //保存到文件 
             //如果不存在就建立,存在就覆盖 
             pDoc->save("f:\he.xml"); 
    }
    生成的he.xml如下:<china><City population="8,000,000" area="10000">WuHan</City><City population="12,000,000" area="12000">ShangHai</City></china>