Microsoft Dom xml写入与读取操作笔记
来源:互联网 发布:考级电子琴品牌 知乎 编辑:程序博客网 时间:2024/06/05 18:31
写xml函数。文件内部路径:all->parent->child,child属性:AA,BB,CC
void writexml(){MSXML2::IXMLDOMDocumentPtr pDoc = NULL;MSXML2::IXMLDOMElementPtr pNode = NULL;MSXML2::IXMLDOMElementPtr pNode2 = NULL;MSXML2::IXMLDOMElementPtr xmlRoot = NULL;MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap = NULL;MSXML2::IXMLDOMNodePtr pAttrItem = NULL;_variant_t variantvalue;HRESULT hr;hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));// 是否安装了MS XML Parser 运行库if (FAILED(hr))return ;char* AA = "aa";char* BB = "bb";char* CC = "cc";char* szXmlPath = "D:\\test.xml";pDoc->load(szXmlPath);xmlRoot = pDoc->selectSingleNode("all");if(xmlRoot == NULL){xmlRoot = pDoc->createElement(_bstr_t::_bstr_t("all"));if(xmlRoot == NULL)return ;pDoc->appendChild(xmlRoot);}pNode = xmlRoot->selectSingleNode("parent");if(pNode == NULL){pNode = pDoc->createElement(_bstr_t::_bstr_t("parent"));if(pNode == NULL)return ;xmlRoot->appendChild(pNode);}pNode2 = pNode->selectSingleNode("child");if(pNode2 == NULL){pNode2 = pDoc -> createElement(_bstr_t::_bstr_t("child"));if(pNode2 == NULL)return ;pNode->appendChild(pNode2);}pNode2->setAttribute( _bstr_t::_bstr_t("AA"), AA);pNode2->setAttribute( _bstr_t::_bstr_t("BB"), BB);pNode2->setAttribute( _bstr_t::_bstr_t("CC"), CC);pDoc->save(szXmlPath);}
读xml函数。函数执行后szValue将存放要读取的属性的值。
// 索引查找节点属性的值// szFilePath 为文件路径, szXmlPath 为节点路径// szAtrribute 为索引的属性,szValue 为索引属性的值(传出参数)bool CXmlOperate::GetXmlValue(char* szFilePath, char* szXmlPath, char* szAttribute, char* szValue){if(szValue == NULL)return false;// 传入缓冲区为空if(szFilePath == NULL)return false;// 传入文件路径为空if(szXmlPath == NULL)return false;// 传入属性路径为空if(szAttribute == NULL)return false;// 传入属性为空MSXML2::IXMLDOMDocumentPtr pDoc;MSXML2::IXMLDOMNodePtr pNode;MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap = NULL;MSXML2::IXMLDOMNodePtr pAttrItem = NULL;HRESULT hr;hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));// 是否安装了MS XML Parser 运行库if (FAILED(hr))return false;pDoc->load(szFilePath);pNode = pDoc->selectSingleNode(szXmlPath);if(pNode == NULL)return false;_variant_t variantvalue;pNode->get_attributes(&pAttrMap);if(pAttrMap == NULL)return false;pAttrItem = pAttrMap->getNamedItem(szAttribute);if(pAttrItem == NULL)return false;pAttrItem->get_nodeTypedValue(&variantvalue);strcpy(szValue, (char*)(_bstr_t)variantvalue);return true;}
0 0
- Microsoft Dom xml写入与读取操作笔记
- Microsoft Dom xml写入与读取操作笔记
- java读取Xml,写入Xml的简单Dom操作,忽略DTD验证
- Qt XML读取写入操作
- 读取与写入XML文件
- XML文件写入与读取
- XML文件写入之DOM解析操作
- Javacore学习笔记-XML读取(DOM, SAX, StAx与JAXB)
- xml读取和写入---------xml学习笔记
- XML解析与写入之DOM方式
- 写入xml文件与读取xml文件
- XML 读取 写入 更新 Dom4J 操作
- DOM对象对xml文件的读取和写入
- DOM方式的XML文件读取和写入
- XML文件读取之 DOM解析操作
- XML的简单读取与写入
- XML的简单读取与写入
- XML的简单读取与写入
- Find Minimum in Rotated Sorted Array II (leetcode)
- ecms二次开发之修改页面的生成参数
- Hibernate4实战 之第七部分:最佳实践
- git push rejected的原因
- 简单导航下拉菜单
- Microsoft Dom xml写入与读取操作笔记
- mysql select查询的5个子句
- C 知识点
- knitr包 R语言
- 判别模型 和 生成模型
- Unity3D LoadingScene
- 前端编程提高之旅(十四)----jquery DOM操作
- IOS中解决ARC类实例间循环引用(Swfit)
- UIkit 类图