XML字符串的读写操作函数及示例程序
// OpXML.cpp : Defines the entry point for the console application. //
//----------------------- Coded By Ronk --------------------------// //----------------------- 2005-07-17 --------------------------//
#include "stdafx.h" #include <stdio.h>
//---You must Setup the MSXML4.0 before using #import <msxml4.dll> using namespace MSXML2;
void xmlread(char *ch1,char *ch2,char *ch3);//Read the xmlstr and Get the Text of the Element
void xmlupdate(char *ch1,char *ch2,char *ch3);//Read the xmlstr and Update the Text of the Element
int main(int argc, char* argv[]) { char xmlstr[1024]="<inesmsg><msghead><version>LZD</version><root>ioio</root></msghead></inesmsg>"; char strele[1024]="//version//"; char textstr[1024]="NNYX"; char value[1024]; printf("The xmlstr is :n%snn",xmlstr); xmlread(xmlstr,strele,value); //befor Update printf("The Text of Element befor Update is: n%snn",value); xmlupdate(xmlstr,strele,textstr);//Change the Text of "<version>" with "NNYX" printf("The Updated xmlstr is :n%snn",xmlstr); xmlread(xmlstr,strele,value);//after Update printf("The Text of Element after Update is :n%snn",value); return 0; }
void xmlread(char* msgstr,char* elestr,char *tex) { //Initialize CoInitialize(NULL); IXMLDOMDocumentPtr pXmlDoc; IXMLDOMNodePtr pXmlNode; HRESULT hr; hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument)); if (FAILED(hr)) { printf("Faild to Create XMLDom Instance !"); pXmlDoc=NULL; } else { pXmlDoc ->async = VARIANT_FALSE; //Load xmlmsg _bstr_t xmlstr=(LPCSTR)msgstr; if (!(pXmlDoc->loadXML(msgstr))) { printf("Failed to Load xmlstr:n%sn",(LPCSTR)pXmlDoc->parseError->Getreason()); pXmlDoc=NULL; } else { //Locate the Element _bstr_t str=(LPCSTR)elestr; pXmlNode = pXmlDoc ->selectSingleNode(elestr); if(FAILED(pXmlNode)) printf("Faild to Locate the Element n%sn",str); else { //Read the Text of Element strcpy(tex,(LPCSTR)pXmlNode ->text); //Realese pXmlDoc.Release(); pXmlNode.Release(); } } } }
void xmlupdate(char *msgstr,char *elestr,char *upstr) { //---Initialize CoInitialize(NULL); IXMLDOMDocumentPtr pXmlDoc; IXMLDOMNodePtr pXmlNode; HRESULT hr; hr = pXmlDoc.CreateInstance(__uuidof(DOMDocument)); if (FAILED(hr)) { printf("Faild to Create XMLDom Instance !"); pXmlDoc=NULL; } else { pXmlDoc ->async = VARIANT_FALSE; //Load xml str _bstr_t xmlstr=(LPCSTR)msgstr; if (!(pXmlDoc->loadXML(msgstr))) { printf("Failed to load xmlstr:n%sn",(LPCSTR)pXmlDoc->parseError->Getreason()); pXmlDoc=NULL; } else { //Located the Element _bstr_t str=(LPCSTR)elestr; pXmlNode = pXmlDoc ->selectSingleNode(elestr); if (FAILED(pXmlNode)) printf("Failed to Locate the Element n%sn",str); else { //Update the Text of the Element pXmlNode->text = upstr; //Get the New xmlstr strcpy(msgstr,(LPCSTR)pXmlDoc->xml); //Realese pXmlDoc.Release(); pXmlNode.Release(); } } } }
返回类别: 教程 上一教程: XML教程?编写结构完整的XML文档 下一教程: XML的简朴读取与写入
您可以阅读与"XML字符串的读写操作函数及示例程序"相关的教程: · 读写xml文件的2个小函数 · 概述IE和SQL2k开发一个XML聊天程序 · 从字符文档到xml文档 · XML应用程序 · MS XML DOM 学习笔记Demo程序
|