XML字符串的读写操作函数及示例程序_Xml教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:如何在HTML中引用XML数据
1,内嵌XML数据 <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=gb2312"> <title>第一次亲密接触(非

以下为引用的内容:

// 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%s\n\n",xmlstr);

xmlread(xmlstr,strele,value); //befor Update
printf("The Text of Element befor Update is: \n%s\n\n",value);

xmlupdate(xmlstr,strele,textstr);//Change the Text of "<version>" with "NNYX"
printf("The Updated xmlstr is :\n%s\n\n",xmlstr);

xmlread(xmlstr,strele,value);//after Update
printf("The Text of Element after Update is :\n%s\n\n",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%s\n",(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%s\n",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%s\n",(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%s\n",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();
}
}
}
}

分享:WEB页面工具语言XML支持的工具之运用
尽管XML还处在开发阶段,其标准正在由W3C组织制定,但是已经有许多公司表示全力支持XML,并开发了不少XML工具。Adobe公司的FrameMaker可以用来书写XML文档。Microsoft公司推出的IE 4.0已经可以

来源:模板无忧//所属分类:Xml教程/更新时间:2008-08-22
相关Xml教程