在vc中使用XML功能,包括生成XML文件,读取XML文件等应该首先在StdAfx.h中加入
//XML导入(msxml.dll视你的版本不同而异) ---------------------------------------------------------------------
#import "C:/WINNT/system32/msxml.dll" rename_namespace("xml")
然后就可以在你想要操作XML文件的cpp文件中调用msxml.dll提供的接口,我们主要是利用DOM对象来操作XML(如果对DOM不熟悉的可以去
www.msdn.com察看相关资料)
创建XML文件的过程如下:(假定我的操作XML的类为XMLManager)
// 生成XML文件
void XMLManager::CreateXML(void)
{
xml::IXMLDOMDocumentPtr pDoc;
xml::IXMLDOMElementPtr xmlRoot;
xml::IXMLDOMNodePtr xmlNode;
HRESULT hr = pDoc.CreateInstance(_uuidof(xml::DOMDocument));
if(!SUCCEEDED(hr))
{
AfxMessageBox("无法创建DM对象!");
return;
}
xmlRoot = pDoc->createElement("Book");
xmlRoot->setAttribute("id","NO.1");
xmlNode = pDoc->createElement("Author");
xmlNode->Puttext("Tom");
xmlRoot->appendChild(xmlNode);
xmlNode = pDoc->createElement("Title");
xmlNode->Puttext("C++");
xmlRoot->appendChild(xmlNode);
pDoc->appendChild(xmlRoot);
pDoc->save("c://1.xml");
}
void XMLManager::CreateXML(void)
{
xml::IXMLDOMDocumentPtr pDoc;
xml::IXMLDOMElementPtr xmlRoot;
xml::IXMLDOMNodePtr xmlNode;
HRESULT hr = pDoc.CreateInstance(_uuidof(xml::DOMDocument));
if(!SUCCEEDED(hr))
{
AfxMessageBox("无法创建DM对象!");
return;
}
xmlRoot = pDoc->createElement("Book");
xmlRoot->setAttribute("id","NO.1");
xmlNode = pDoc->createElement("Author");
xmlNode->Puttext("Tom");
xmlRoot->appendChild(xmlNode);
xmlNode = pDoc->createElement("Title");
xmlNode->Puttext("C++");
xmlRoot->appendChild(xmlNode);
pDoc->appendChild(xmlRoot);
pDoc->save("c://1.xml");
}