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

2016-02-19 20:00 9 1 收藏

下面是个XML字符串的读写操作函数及示例程序教程,撑握了其技术要点,学起来就简单多了。赶紧跟着图老师小编一起来看看吧!

【 tulaoshi.com - Web开发 】

以下为引用的内容:

// 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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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]="inesmsgmsgheadversionLZD/versionrootioio/root/msghead/inesmsg";
 char strele[1024]="//version//";
 char textstr[1024]="NNYX";
 char value[1024];
 
 printf("The xmlstr is :%s",xmlstr);
 
 xmlread(xmlstr,strele,value); //befor Update
 printf("The Text of Element befor Update is: %s",value);
 
 xmlupdate(xmlstr,strele,textstr);//Change the Text of "version" with "NNYX"
 printf("The Updated xmlstr is :%s",xmlstr);
 
 xmlread(xmlstr,strele,value);//after Update
 printf("The Text of Element after Update is :%s",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:%s",(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 %s",str);
   else
   {     
    //Read the Text of Element
    strcpy(tex,(LPCSTR)pXmlNode -text);
   
   
    //Realese
    pXmlDoc.Release();
    pXmlNode.Release();
   }
  }
 }
}

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/webkaifa/)

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:%s",(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 %s",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();
   }
  }
 }
}

来源:http://www.tulaoshi.com/n/20160219/1622515.html

延伸阅读
如下表:AggregationTableIdName1赵2钱1孙1李2周 如果想得到下图的聚合结果 IdName1赵孙李2钱周 利用SUM、AVG、COUNT、COUNT(*)、MAX 和 MIN是无法做到的。因为这些都是对数值的聚合。不过我们可以通过自定义函数的方式来解决这个问题。 1.首先建立测试表,并插入测试数据: 代码如下: create table AggregationTable(Id int, [Name] varcha...
根据,MySQL 会自动将数字转化为字符串,反之亦然。 mysql SELECT 1+'1'; - 2 mysql SELECT CONCAT(2,' test'); - '2 test' 若想要将数字明确地转化为字符串,可使用 CAST()或 CONCAT()函数: mysql SELECT 38.8, CAST(38.8 AS CHAR); - 38.8, '38.8' mysql SELECT 38.8, CONCAT...
标签: ASP
1. 字符串函数: Len(str):取得字符串的长度 Instr(str1,str2):从字符串str1,寻找另一个字符串str2第一个出现的位置 Left(str,n):从字符串str左起取n个字符 Right(str,n):从字符串str右起取n个字符 Mid(str1,n1,n2):从字符串第n1个字符开始,取出n2个字符。 2.字符串函数应用: 1)通过字符函数设计出一个字符串长度控制函数: 防止超过行宽字符...
怎样取得一个字符串在另外一个字符串中出现的次数? PublicFunctionsCount(String1AsString,String2AsString)AsInteger DimIAsInteger,iCountAsInteger I=1 Do If(ILen(String1))ThenExitDo I=InStr(I,String1,String2,vbTextCompare) IfIThen iCount=iCount 1 I=I 2 DoEvents EndIf LoopWhile...
VB官方文档似乎很鼓励使用"无$"类字符串函数,比如:Left、LTrim或者UCase,而不是实现同样功能的Left$、LTrim$和UCase$函数。但是我们必须认识到:前者返回variant类型的数值,当用于字符串表达式中时,最终必须要转换为字符串(string)类型。 因此,在严格要求时间的代码段中,我们应该使用后者,它们将快5-10。 ->

经验教程

602

收藏

87
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部