现在需要用VC写好一个XML的文件,文件里面的内容包括节点之类的已经写好,现在的问题是不知道XML文件的头部说明怎么写
例如
<?xml version="1.0" encoding="utf-8" ?>上面这一段说明是怎么写进去的
本来写XML的部分说明是
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot;
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30)); 问题是如何利用pdc把那段说明写到XML文件的开头谢谢
例如
<?xml version="1.0" encoding="utf-8" ?>上面这一段说明是怎么写进去的
本来写XML的部分说明是
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot;
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30)); 问题是如何利用pdc把那段说明写到XML文件的开头谢谢
void COperateXMLDlg::OnCreate() //Create XML
{
// TODO: Add your control notification handler code here
::CoInitialize(NULL); //初始化COM
MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot;
MSXML2::IXMLDOMNodePtr pXmlNode = NULL;
MSXML2::IXMLDOMProcessingInstructionPtr pi = NULL;
if(pDoc)
{
pDoc->Release();
pDoc = NULL;
}
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));//DOMDocument30
if(!SUCCEEDED(hr))
{
MessageBox("Error");
return;
}
pi = pDoc->createProcessingInstruction(_T("xml"),_T("version=\"1.0\" encoding=\"UTF-8\"") );
if (pi != NULL)
{
pXmlNode = pi;
pDoc->appendChild( pXmlNode );
pi.Release();
pXmlNode.Release();
}
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("shanghai");
childNode->setAttribute("population", "7000");
childNode->setAttribute("area", "2000");
xmlRoot->appendChild(childNode); pDoc->raw_createElement((_bstr_t)(char*)"city", &childNode);
childNode->Puttext("beijing");
childNode->setAttribute("population", "39999");
childNode->setAttribute("area", "3322");
xmlRoot->appendChild(childNode);
pDoc->save("test.xml"); AfxMessageBox("Save in current directory: test.xml");
}
去看看
http://download.csdn.net/source/992877
CMarkup newCreatXML; //新建的XML
//生成XML文件
newCreatXML.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");//添加XML头
newCreatXML.AddElem("Root"); //添加根项
newCreatXML.AddAttrib("son1","hi"); //添加属性
newCreatXML.AddAttrib("attr" ,"hello");//添加属性
newCreatXML.Save(xml_name);//保存到为xml文件
//生成XML文件
newCreatXML.SetDoc("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");//添加XML头
newCreatXML.AddElem("Root"); //添加根项
newCreatXML.AddAttrib("son1","hi"); //添加属性
newCreatXML.AddAttrib("attr" ,"hello");//添加属性
newCreatXML.Save("myfirstxml.xml");//保存到为xml文件 // 此处要这样改才对 刚刚10楼的此处缺少一个引号
把你的头部说明和内容节点和起来。
然后
VARIANT_BOOL isSuccessful;
hr = pDoc.loadXML(和起来的内容, &isSuccessful);
不过这样适合简单的xml,复杂的还是用楼上几位说的CMarkup吧