MFC写XML文件 以及 删除节点
来源:互联网 发布:内存卡恢复数据 编辑:程序博客网 时间:2024/06/01 16:17
转自:http://bbs.csdn.net/topics/300026982
包含库文件不变:#import "msxml3.dll"
命名空间不变:using namespace MSXML2;
示例代码如下:
//初始化
CoInitialize(NULL);
// 创建文档
MSXML2::IXMLDOMDocument2Ptr pXMLDoc = NULL;
pXMLDoc.CreateInstance("Msxml2.DOMDocument.3.0");
// Create the Processing Instruction
MSXML2::IXMLDOMProcessingInstructionPtr pXMLProc = NULL;
pXMLProc = pXMLDoc->createProcessingInstruction("xml", "version='1.0' encoding='UTF-8'");
// Insert the Processing Instruction
_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("Root"), _T(""));
// 添加根结点
pXMLDoc->appendChild(pXMLNodeRoot);
// 创建并添加下级结点
MSXML2::IXMLDOMNodePtr pXMLNodeNode= NULL;
pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Node1")));
pXMLNodeNode = pXMLNodeRoot->appendChild(pXMLDoc->createElement(_T("Node2")));
// 创建并设置下级结点属性(3个:姓名、性别、年龄)
MSXML2::IXMLDOMAttributePtr pXMLAttr = NULL;
pXMLAttr = pXMLDoc->createAttribute(_T("name"));
pXMLAttr->nodeTypedValue = "王进";
pXMLNodeNode->attributes->setNamedItem(pXMLAttr);
pXMLAttr = pXMLDoc->createAttribute(_T("sex"));
pXMLAttr->nodeTypedValue = "男";
pXMLNodeNode->attributes->setNamedItem(pXMLAttr);
pXMLAttr = pXMLDoc->createAttribute(_T("age"));
pXMLAttr->nodeTypedValue = "80";
pXMLNodeNode->attributes->setNamedItem(pXMLAttr);
// 创建下级元素结点
MSXML2::IXMLDOMElementPtr pXMLEle = NULL;
pXMLEle = pXMLDoc->createElement(_T("file"));
pXMLEle->appendChild(pXMLDoc->createTextNode("Element"));
// 添加元素结点
pXMLNodeNode->appendChild( pXMLEle );
/*
// 创建下级元素结点
MSXML2::IXMLDOMElementPtr pXMLEleSub = NULL;
pXMLEleSub = pXMLDoc->createElement(_T("file"));
pXMLEleSub->appendChild(pXMLDoc->createTextNode("SubElement"));
// 添加下级元素结点
pXMLEle->appendChild( pXMLEleSub );
*/
// 保存文档
pXMLDoc->save(_T("d:\\Test.xml"));
CoUninitialize();
总结:当节点下无元素时,节点不会展开
删除节点:
pNodeList->get_item(i,&pNode);
pNod->removeChild(pNode,&moldNode);
moldNode->Release();
自己在IniToXml工程中使用时发现removeChild函数只接收一个参数:即pNode
此外:当从某个index开始删除之后所有的节点时,get_item(i,&pNode)中的 i 不能是递增的,因为每删掉一个节点,就会有之后的节点移到前面来。
- MFC写XML文件 以及 删除节点
- xml文件中删除根节点
- java之xml文件中删除节点
- 修改和删除XML DOM节点以及simpleXML快速解析
- 创建XML文件以及XML中的节点和更新Xml文件中的节点的值
- Qt的XML封装类QXmlWrapper,实现XML文件的创建、删除以及元素节点的增加、删除、修改与查找等。
- xml文件中若没有子节点,则删除文件
- [Python]--写xml节点
- c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)
- c#操作XML(读XML,写XML,更新,删除节点,与dataset结合等)
- C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)
- 删除XML节点
- 删除xml某节点
- 最近读设计模式有感
- [leetcode] Multiply Strings
- WTL框架
- MAC常用命令
- Oracle 11gR2(11.2.0.3) Patchset (p10404530)中7个不同文件的作用说明
- MFC写XML文件 以及 删除节点
- Android应用性能优化之使用SparseArray替代HashMap
- 链接时如何选择C Run-Time(CRT) library
- 安装samba服务器到tq2440开发板上的DUBUG日志
- 浅谈BADI
- xfire中自定义参数名
- awk处理之案例三:awk去掉不需要的文本行
- jvm 调整内存大小
- 第三个类:MyAuthenticator.java