// WebClient.cpp : Defines the entry point for the console application.
在vc中使用MSXML解析xml文件//
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件#include   "stdafx.h"   
在vc中使用MSXML解析xml文件#include   
<afx.h>   
在vc中使用MSXML解析xml文件#include   
<windows.h>   
在vc中使用MSXML解析xml文件#pragma comment(lib, "ws2_32.lib")
在vc中使用MSXML解析xml文件#include "Winsock2.h"
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件#import 
<msxml4.dll> 
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件void updateXML(CString, CString);
在vc中使用MSXML解析xml文件inline void TESTHR( HRESULT _hr ) { if FAILED(_hr) throw(_hr); }
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件void main(){
在vc中使用MSXML解析xml文件    int port = 4000;
在vc中使用MSXML解析xml文件    //用于接受信息的buffer
在vc中使用MSXML解析xml文件    char recvBuf[100];
在vc中使用MSXML解析xml文件    //name
在vc中使用MSXML解析xml文件    CString name;
在vc中使用MSXML解析xml文件    //value 
在vc中使用MSXML解析xml文件    CString value;
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //初始化Socket编程环境
在vc中使用MSXML解析xml文件    WORD wVersionRequested;
在vc中使用MSXML解析xml文件    WSADATA wsaData;
在vc中使用MSXML解析xml文件    int err;
在vc中使用MSXML解析xml文件    wVersionRequested = MAKEWORD(1,1);
在vc中使用MSXML解析xml文件    err = WSAStartup(wVersionRequested, 
&wsaData);
在vc中使用MSXML解析xml文件    if(err != 0){
在vc中使用MSXML解析xml文件        return;
在vc中使用MSXML解析xml文件    }
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    if(LOBYTE(wsaData.wVersion) != 1 ||
在vc中使用MSXML解析xml文件        HIBYTE(wsaData.wVersion) != 1){
在vc中使用MSXML解析xml文件        WSACleanup();
在vc中使用MSXML解析xml文件        return;
在vc中使用MSXML解析xml文件    }
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //创建TCP客户端socket
在vc中使用MSXML解析xml文件    SOCKET sockSrv = socket(AF_INET, SOCK_STREAM, 0);
在vc中使用MSXML解析xml文件    //客户端地址
在vc中使用MSXML解析xml文件    SOCKADDR_IN addrSrv;
在vc中使用MSXML解析xml文件    addrSrv.sin_addr.S_un.S_addr = htonl(INADDR_ANY);
在vc中使用MSXML解析xml文件    addrSrv.sin_family = AF_INET;
在vc中使用MSXML解析xml文件    addrSrv.sin_port = htons(port);
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //将Socket与地址绑定在一起
在vc中使用MSXML解析xml文件    bind(sockSrv, (SOCKADDR *)
&addrSrv, sizeof(SOCKADDR));
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //开始监听服务器的请求
在vc中使用MSXML解析xml文件    listen(sockSrv, 5);
在vc中使用MSXML解析xml文件    //用于存放服务器的地址
在vc中使用MSXML解析xml文件    SOCKADDR_IN addrServer;
在vc中使用MSXML解析xml文件    int len = sizeof(SOCKADDR_IN);
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //MessageBox("client starts...");
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //接受服务器端的请求socket
在vc中使用MSXML解析xml文件    SOCKET sockConn = accept(sockSrv, (SOCKADDR *)
&addrServer&len);
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //接受数据:要设置的属性
在vc中使用MSXML解析xml文件    recv(sockConn, recvBuf, 100, 0);
在vc中使用MSXML解析xml文件    name = recvBuf;                            //""移动存储设备"";
在vc中使用MSXML解析xml文件    //MessageBox(name);
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件    //接受数据:要设置的新值
在vc中使用MSXML解析xml文件    recv(sockConn, recvBuf, 100, 0);
在vc中使用MSXML解析xml文件    value = recvBuf;                        //""enable"";
在vc中使用MSXML解析xml文件    //MessageBox(value);
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件    //关闭socket
在vc中使用MSXML解析xml文件    closesocket(sockConn);
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //清理socket环境
在vc中使用MSXML解析xml文件    WSACleanup();    
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //更新xml文件
在vc中使用MSXML解析xml文件    updateXML(name, value);
在vc中使用MSXML解析xml文件    
在vc中使用MSXML解析xml文件    //显示成功修改
在vc中使用MSXML解析xml文件    //MessageBox("成功修改");
在vc中使用MSXML解析xml文件    exit(0);
在vc中使用MSXML解析xml文件}
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件//执行修改
在vc中使用MSXML解析xml文件void updateXML(CString name, CString value)
在vc中使用MSXML解析xml文件{
在vc中使用MSXML解析xml文件    try{
在vc中使用MSXML解析xml文件        MSXML2::IXMLDOMDocumentPtr docPtr; 
在vc中使用MSXML解析xml文件        MSXML2::IXMLDOMElementPtr elmRoot;
在vc中使用MSXML解析xml文件        /*
在vc中使用MSXML解析xml文件        HRESULT    hr;
在vc中使用MSXML解析xml文件        hr = docPtr.CreateInstance(__uuidof(MSXML2::DOMDocument40));
在vc中使用MSXML解析xml文件        if(FAILED(hr))
在vc中使用MSXML解析xml文件        {  
在vc中使用MSXML解析xml文件            printf("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库! ");
在vc中使用MSXML解析xml文件            //MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!"); 
在vc中使用MSXML解析xml文件            return ;
在vc中使用MSXML解析xml文件        }*/    
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        //init
在vc中使用MSXML解析xml文件        TESTHR(CoInitialize(NULL)); 
在vc中使用MSXML解析xml文件        TESTHR(docPtr.CreateInstance("msxml2.domdocument"));
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件        CString filePath = "c:\nfs.xml";
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        //加载xml文件
在vc中使用MSXML解析xml文件        docPtr->load((_bstr_t)filePath);
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        //初始化DOM根结点元素
在vc中使用MSXML解析xml文件        elmRoot = docPtr->selectSingleNode("SecurityFile");         
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        //要查找的节点名称
在vc中使用MSXML解析xml文件        CString strToLook = "//usbDevice";
在vc中使用MSXML解析xml文件        CString str_type_Name = "type";
在vc中使用MSXML解析xml文件        CString str_type_Value = name;              // ""移动存储设备"";
在vc中使用MSXML解析xml文件        CString str_state_Name = "State";
在vc中使用MSXML解析xml文件        CString str_state_Value = value;            //""disable"";
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        //用于保存找到的节点列表
在vc中使用MSXML解析xml文件        MSXML2::IXMLDOMNodeListPtr list;
在vc中使用MSXML解析xml文件        list = docPtr->selectNodes((_bstr_t)strToLook);
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        long numOfNode = list->length;
在vc中使用MSXML解析xml文件        //对查找到的节点依次处理
在vc中使用MSXML解析xml文件        MSXML2::IXMLDOMNodePtr temp, tempChild, stateNode;
在vc中使用MSXML解析xml文件        //每个节点的子节点列表
在vc中使用MSXML解析xml文件        MSXML2::IXMLDOMNodeListPtr tempChildList;
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        bool flag = false;
在vc中使用MSXML解析xml文件        for(int i = 0; i 
< numOfNode; i++){
在vc中使用MSXML解析xml文件            list-
>get_item(i, &temp);
在vc中使用MSXML解析xml文件            tempChildList = temp->childNodes;
在vc中使用MSXML解析xml文件            
在vc中使用MSXML解析xml文件            for(int j = 0; j 
< tempChildList->length; j++){
在vc中使用MSXML解析xml文件                tempChildList->get_item(j, 
&tempChild);
在vc中使用MSXML解析xml文件                
在vc中使用MSXML解析xml文件                CString strName = (char*)(_bstr_t)tempChild->nodeName;
在vc中使用MSXML解析xml文件                CString strValue = (char*)(_bstr_t)tempChild->nodeTypedValue;                
在vc中使用MSXML解析xml文件                
在vc中使用MSXML解析xml文件                //MessageBox(strName + " " + strValue + ", " + name + " " + value);
在vc中使用MSXML解析xml文件
在vc中使用MSXML解析xml文件                //如果找到,则记录State节点
在vc中使用MSXML解析xml文件                if(flag && strName == str_state_Name){
在vc中使用MSXML解析xml文件                    stateNode = tempChild;
在vc中使用MSXML解析xml文件                    break;
在vc中使用MSXML解析xml文件                }
在vc中使用MSXML解析xml文件                
在vc中使用MSXML解析xml文件                //找到type是"移动存储设备"的节点
在vc中使用MSXML解析xml文件                if(strName == str_type_Name){
在vc中使用MSXML解析xml文件                    if(strValue == str_type_Value){
在vc中使用MSXML解析xml文件                        flag = true;        
在vc中使用MSXML解析xml文件                    }
在vc中使用MSXML解析xml文件                }                
在vc中使用MSXML解析xml文件            }
在vc中使用MSXML解析xml文件        }
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        if(stateNode != NULL){
在vc中使用MSXML解析xml文件            stateNode->Puttext((_bstr_t)(const char *)str_state_Value);
在vc中使用MSXML解析xml文件        }else{
在vc中使用MSXML解析xml文件            //MessageBox("没有找到匹配节点!");
在vc中使用MSXML解析xml文件            printf("没有找到匹配节点!");
在vc中使用MSXML解析xml文件        }
在vc中使用MSXML解析xml文件        
在vc中使用MSXML解析xml文件        //保存变化到xml文件
在vc中使用MSXML解析xml文件        docPtr->save((_bstr_t)filePath);    
在vc中使用MSXML解析xml文件    }catch(...){
在vc中使用MSXML解析xml文件        //MessageBox("some error occer...");
在vc中使用MSXML解析xml文件        printf("some error occer...");
在vc中使用MSXML解析xml文件    }
在vc中使用MSXML解析xml文件}
在vc中使用MSXML解析xml文件

客户端接受一个要修改的属性,以及新值,修改xml文件。

这里要区分节点与属性的关系即可。

 

 

相关文章:

  • 2021-06-14
  • 2022-12-23
  • 2022-02-09
  • 2022-12-23
  • 2022-12-23
  • 2021-05-26
  • 2021-08-31
  • 2021-06-11
猜你喜欢
  • 2022-01-25
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
相关资源
相似解决方案