用vc++来生成一个xml文档,重谢!!! 我想把自己vc++程序中的数据保存成xml类形的文档,不知道该怎么生成,而且要用xml dom的相应方法,那个大人有例子可以参考一下啊?或者说说大致的流程,万分感谢阿! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在google搜ms xml相信可以找到你所需要的。如果要用c语言的xml库,有libxml(http://xmlsoft.org/) libxml、libxml++、mxdom之类的有很多 www.sf.net 去下载tinyxml,带有例子程序,一看就明白了。 就用MS的吧,XMLDOM,里面的SDK上有完整的例子 http://blog.csdn.net/xmagicx/archive/2004/10/28/156001.aspx tinyxml相比较MSXML,tinyxml功能较少,但却使用简单,使用C++编写,MSXML需要一点COM的知识;tinyxml有源码,有示例。 #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 email:[email protected] 偶给你发.带例子:) 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> IHTMLTxtRange接口崩溃 关于鼠标屏幕取词的问题,谢谢了,小菜鸟实在搞不定、、、、、 怎么判断系统是不是无盘系统 在VC++中怎样删除一个类以及对话框?(急!急!急!) 菜单项的一个小问题 不知这属不属于链接错误的问题 菜鸟求助!!!老板催的很急!! 数据库编程 我在网上下载了一个turbo linux 7.0 ,有两个ISO文件,请问我怎样把他做成启动盘。或者不做启动盘怎样安装。急急急急 有两个问题请教高手!!!!!!!!急 DirectShow全屏 如何显示鼠标? 服务程序下获取注册表信息,无法获取到正确的值,这怎么解决阿?
如果要用c语言的xml库,有libxml(http://xmlsoft.org/)
#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
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>