vc中通过MSXML操作XML文件(转贴)

XMLHTTP对象相关的名称 作者:iamlaosong 最近用VBA编程使用XMLHTTP对象网抓数据的时候,发现这个对象不同场合的名称有点不同。对这些名称做了一些了解,在了解过程中,还碰到一些相关的对象,这方面我了解的还不透彻,现在将对这些东西的一些理解记录于此。 1、所用的XMLHTTP对象是Microsoft XML v6.0(库文件msxml6.dll),这是我看到的最高版本,当然还有低一点的版本,在引用中可以看... 阅读详情

http://www.codeproject.com/cpp/C___XML_wrapper.asp

对XML文件操作的时候,先安装XML解析器,并要到进行初始话,然后就可以用下面的封装好的类对XML文件进行读和写的操作了.

初始话很简单(和ADO的初始话工作类似),下边以基于对话框的工程(TEST)为例,进行初始话

只要在TEST.CPP的InitInstance()方法中加入

AfxOleInit();

就可以了.

 

// XmlNodeWrapper.h: interface for the CXmlNodeWrapper class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_XMLNODEWRAPPER_H__43622334_FDEB_4175_9E6D_19BBAA3992A5__INCLUDED_)
#define AFX_XMLNODEWRAPPER_H__43622334_FDEB_4175_9E6D_19BBAA3992A5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#import "MSXML3.dll" named_guids
using namespace MSXML2;

class CXmlNodeWrapper 
{
public:
 CString NodeType();
 CString GetAttribVal(int index);
 CString GetAttribName(int index);
 int NumAttributes();
 void ReplaceNode(MSXML2::IXMLDOMNode* pOldNode,MSXML2::IXMLDOMNode* pNewNode);
 CString GetText();
 void SetText(LPCTSTR text);
 MSXML2::IXMLDOMNode* InsertAfter(MSXML2::IXMLDOMNode *refNode, MSXML2::IXMLDOMNode *pNode);
 CString Name();
 MSXML2::IXMLDOMNodeList* FindNodes(LPCTSTR searchStr);
 MSXML2::IXMLDOMNode* Parent();
 void RemoveNodes(LPCTSTR searchStr);
 MSXML2::IXMLDOMNode* InsertAfter(MSXML2::IXMLDOMNode* refNode, LPCTSTR nodeName);
 MSXML2::IXMLDOMNode* InsertBefore(MSXML2::IXMLDOMNode* refNode, LPCTSTR nodeName);
 MSXML2::IXMLDOMNode* Interface();
 MSXML2::IXMLDOMDocument* ParentDocument();
 CString GetXML();
 MSXML2::IXMLDOMNode* RemoveNode(MSXML2::IXMLDOMNodePtr pNode);
 MSXML2::IXMLDOMNode* InsertNode(int index,LPCTSTR nodeName);
 MSXML2::IXMLDOMNode* InsertNode(int index,MSXML2::IXMLDOMNodePtr pNode);
 long NumNodes();
 MSXML2::IXMLDOMNode* Detach();
 MSXML2::IXMLDOMNode* GetNode(LPCTSTR nodeName);
 MSXML2::IXMLDOMNode* GetNode(int nodeIndex);
 MSXML2::IXMLDOMNode* FindNode(LPCTSTR searchString);
 MSXML2::IXMLDOMNode* GetPrevSibling();
 MSXML2::IXMLDOMNode* GetNextSibling();
 void SetValue(LPCTSTR valueName,LPCTSTR value);
 void SetValue(LPCTSTR valueName,int value);
 void SetValue(LPCTSTR valueName,short value);
 void SetValue(LPCTSTR valueName,double value);
 void SetValue(LPCTSTR valueName,float value);
 void SetValue(LPCTSTR valueName,bool value);
 BOOL IsValid();
 CString GetValue(LPCTSTR valueName);

 CXmlNodeWrapper();
 CXmlNodeWrapper(MSXML2::IXMLDOMNodePtr pNode,BOOL bAutoRelease = TRUE);
 void operator=(MSXML2::IXMLDOMNodePtr pNode);
 virtual ~CXmlNodeWrapper();
private:
 BOOL m_bAutoRelease;
 MSXML2::IXMLDOMNodePtr m_xmlnode;
};

class CXmlDocumentWrapper
{
public:
 CString GetUrl();
 CString GetXML();
 BOOL IsValid();
 BOOL Load(LPCTSTR path);
 BOOL LoadXML(LPCTSTR xml);
 BOOL Save(LPCTSTR path = "");
 MSXML2::IXMLDOMDocument* Detach();
 MSXML2::IXMLDOMDocument* Clone();
 CXmlDocumentWrapper();
 CXmlDocumentWrapper(MSXML2::IXMLDOMDocumentPtr pDoc);
 MSXML2::IXMLDOMNode* AsNode();
 virtual ~CXmlDocumentWrapper();
private:
 MSXML2::IXMLDOMDocumentPtr m_xmldoc;
};

class CXmlNodeListWrapper
{
public:
 MSXML2::IXMLDOMDocument* AsDocument();
 MSXML2::IXMLDOMNode* Node(int index);
 void Start();
 MSXML2::IXMLDOMNode* Next();
 BOOL IsValid();
 int Count();
 CXmlNodeListWrapper();
 CXmlNodeListWrapper(MSXML2::IXMLDOMNodeListPtr pList);
 void operator=(MSXML2::IXMLDOMNodeListPtr pList);
 virtual ~CXmlNodeListWrapper();

private:
 MSXML2::IXMLDOMNodeListPtr m_xmlnodelist;
};

#endif // !defined(AFX_XMLNODEWRAPPER_H__43622334_FDEB_4175_9E6D_19BBAA3992A5__INCLUDED_)

 

 

// XmlNodeWrapper.cpp: implementation of the CXmlNodeWrapper class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "XmlNodeWrapper.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CXmlNodeWrapper::CXmlNodeWrapper()
{
}

CXmlNodeWrapper::CXmlNodeWrapper(MSXML2::IXMLDOMNodePtr pNode,BOOL bAutoRelease)
{
 m_xmlnode = pNode;
 m_bAutoRelease = bAutoRelease;
}
void CXmlNodeWrapper::operator=(MSXML2::IXMLDOMNodePtr pNode)
{
 if (IsValid())
  m_xmlnode.Release();// = 号的重载,优化内存,释放不用的资源
 m_xmlnode = pNode;
}

CXmlNodeWrapper::~CXmlNodeWrapper()
{
 if (!m_bAutoRelease)
  m_xmlnode.Detach();
}


CString CXmlNodeWrapper::GetValue(LPCTSTR valueName)
{
 if (!IsValid())
  return "";

 MSXML2::IXMLDOMNodePtr attribute = m_xmlnode->Getattributes()->getNamedItem(valueName);
 if (attribute)
 {
  return (LPCSTR)attribute->Gettext();
 }
 return "";
}

BOOL CXmlNodeWrapper::IsValid()
{
 if (m_xmlnode == NULL)
  return FALSE;
 if (m_xmlnode.GetInterfacePtr() == NULL)
  return FALSE;
 return TRUE;
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::GetPrevSibling()
{
 if (!IsValid())
  return NULL;
 return m_xmlnode->GetpreviousSibling().Detach();
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::GetNextSibling()
{
 if (!IsValid())
  return NULL;
 return m_xmlnode->GetnextSibling().Detach();
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::GetNode(LPCTSTR nodeName)
{
 if (!IsValid())
  return NULL;
 try{
  return m_xmlnode->selectSingleNode(nodeName).Detach();
 }
 catch (_com_error e)
 {
  CString err = e.ErrorMessage();
 }
 return NULL;
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::GetNode(int nodeIndex)
{
 if (!IsValid())
  return NULL;
 return m_xmlnode->GetchildNodes()->Getitem(nodeIndex).Detach();
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::FindNode(LPCTSTR searchString)
{
 if (!IsValid())
  return NULL;
 try{
  return m_xmlnode->selectSingleNode(searchString).Detach();
 }
 catch (_com_error e)
 {
  CString err = e.ErrorMessage();
 }
 return NULL;
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::Detach()
{
 if (IsValid())
 {
  return m_xmlnode.Detach();
 }
 else
  return NULL;
}

long CXmlNodeWrapper::NumNodes()
{
 if (IsValid())
 {
  return m_xmlnode->GetchildNodes()->Getlength();
 }
 else
  return 0;
}

void CXmlNodeWrapper::SetValue(LPCTSTR valueName,LPCTSTR value)
{
 MSXML2::IXMLDOMDocumentPtr xmlDocument = m_xmlnode->GetownerDocument();
 if (xmlDocument)
 {
  MSXML2::IXMLDOMNamedNodeMapPtr attributes = m_xmlnode->Getattributes();
  if (attributes)
  {
   MSXML2::IXMLDOMAttributePtr attribute = xmlDocument->createAttribute(valueName);
   if (attribute)
   {
    attribute->Puttext(value);
    attributes->setNamedItem(attribute);
   }
  }
 }
}

void CXmlNodeWrapper::SetValue(LPCTSTR valueName,int value)
{
 CString str;
 str.Format("%ld",value);
 SetValue(valueName,str);
}

void CXmlNodeWrapper::SetValue(LPCTSTR valueName,short value)
{
 CString str;
 str.Format("%hd",value);
 SetValue(valueName,str);
}

void CXmlNodeWrapper::SetValue(LPCTSTR valueName,double value)
{
 CString str;
 str.Format("%f",value);
 SetValue(valueName,str);
}

void CXmlNodeWrapper::SetValue(LPCTSTR valueName,float value)
{
 CString str;
 str.Format("%f",value);
 SetValue(valueName,str);
}

void CXmlNodeWrapper::SetValue(LPCTSTR valueName,bool value)
{
 CString str;
 if (value)
  str = "True";
 else
  str = "False";
 SetValue(valueName,str);
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::InsertNode(int index,LPCTSTR nodeName)
{
 MSXML2::IXMLDOMDocumentPtr xmlDocument = m_xmlnode->GetownerDocument();
 if (xmlDocument)
 {
  MSXML2::IXMLDOMNodePtr newNode = xmlDocument->createNode(_variant_t((short)MSXML2::NODE_ELEMENT),nodeName,"");
  MSXML2::IXMLDOMNode* refNode = GetNode(index);
  if (refNode)
   newNode = m_xmlnode->insertBefore(newNode.Detach(),refNode);
  else
   newNode = m_xmlnode->appendChild(newNode.Detach());
  return newNode.Detach();
 }
 return NULL;
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::InsertNode(int index,MSXML2::IXMLDOMNodePtr pNode)
{
 MSXML2::IXMLDOMNodePtr newNode = pNode->cloneNode(VARIANT_TRUE);
 if (newNode)
 {
  MSXML2::IXMLDOMNode* refNode = GetNode(index);
  if (refNode)
   newNode = m_xmlnode->insertBefore(newNode.Detach(),refNode);
  else
   newNode = m_xmlnode->appendChild(newNode.Detach());
  return newNode.Detach();
 }
 else
  return NULL;
}

CString CXmlNodeWrapper::GetXML()
{
 if (IsValid())
  return (LPCSTR)m_xmlnode->Getxml();
 else
  return "";
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::RemoveNode(MSXML2::IXMLDOMNodePtr pNode)
{
 if (!IsValid())
  return NULL;
 return m_xmlnode->removeChild(pNode).Detach();
}

/* ********************************************************************************************************* */
CXmlDocumentWrapper::CXmlDocumentWrapper()
{
 m_xmldoc.CreateInstance(MSXML2::CLSID_DOMDocument);
}

CXmlDocumentWrapper::CXmlDocumentWrapper(MSXML2::IXMLDOMDocumentPtr pDoc)
{
 m_xmldoc = pDoc;
}

CXmlDocumentWrapper::~CXmlDocumentWrapper()
{
}

BOOL CXmlDocumentWrapper::IsValid()
{
 if (m_xmldoc == NULL)
  return FALSE;
 if (m_xmldoc.GetInterfacePtr() == NULL)
  return FALSE;
 return TRUE;
}

MSXML2::IXMLDOMDocument* CXmlDocumentWrapper::Detach()
{
 if (!IsValid())
  return NULL;
 return m_xmldoc.Detach();
}

MSXML2::IXMLDOMDocument* CXmlDocumentWrapper::Clone()
{
 if (!IsValid())
  return NULL;
 MSXML2::IXMLDOMDocumentPtr xmldoc;
 xmldoc.CreateInstance(MSXML2::CLSID_DOMDocument);
 _variant_t v(xmldoc.GetInterfacePtr());
 m_xmldoc->save(v);
 return xmldoc.Detach();
}

BOOL CXmlDocumentWrapper::Load(LPCTSTR path)
{
 if (!IsValid())
  return FALSE;

 _variant_t v(path);
 m_xmldoc->put_async(VARIANT_FALSE);
 VARIANT_BOOL success = m_xmldoc->load(v);
 if (success == VARIANT_TRUE)
  return TRUE;
 else
  return FALSE;
}

BOOL CXmlDocumentWrapper::LoadXML(LPCTSTR xml)
{
 if (!IsValid())
  return FALSE;
 VARIANT_BOOL success = m_xmldoc->loadXML(xml);
 if (success == VARIANT_TRUE)
  return TRUE;
 else
  return FALSE;
}

BOOL CXmlDocumentWrapper::Save(LPCTSTR path)
{
 try
 {
  if (!IsValid())
   return FALSE;
  CString szPath(path);
  if (szPath == "")
  {
   _bstr_t curPath = m_xmldoc->Geturl();
   szPath = (LPSTR)curPath;
  }
  _variant_t v(szPath);
  if (FAILED(m_xmldoc->save(v)))
   return FALSE;
  else
   return TRUE;
 }
 catch(...)
 {
  return FALSE;
 }
}

MSXML2::IXMLDOMNode* CXmlDocumentWrapper::AsNode()
{
 if (!IsValid())
  return NULL;
 return m_xmldoc->GetdocumentElement().Detach();
}

CString CXmlDocumentWrapper::GetXML()
{
 if (IsValid())
  return (LPCSTR)m_xmldoc->Getxml();
 else
  return "";
}

CString CXmlDocumentWrapper::GetUrl()
{
 return (LPSTR)m_xmldoc->Geturl();
}

MSXML2::IXMLDOMDocument* CXmlNodeWrapper::ParentDocument()
{
 return m_xmlnode->GetownerDocument().Detach();
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::Interface()
{
 if (IsValid())
  return m_xmlnode;
 return NULL;
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::InsertBefore(MSXML2::IXMLDOMNode *refNode, LPCTSTR nodeName)
{
 MSXML2::IXMLDOMDocumentPtr xmlDocument = m_xmlnode->GetownerDocument();
 if (xmlDocument)
 {
  MSXML2::IXMLDOMNodePtr newNode = xmlDocument->createNode(_variant_t((short)MSXML2::NODE_ELEMENT),nodeName,"");
  newNode = m_xmlnode->insertBefore(newNode.Detach(),(IUnknown*)refNode);
  return newNode.Detach();
 }
 return NULL;
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::InsertAfter(MSXML2::IXMLDOMNode *refNode, LPCTSTR nodeName)
{
 MSXML2::IXMLDOMDocumentPtr xmlDocument = m_xmlnode->GetownerDocument();
 if (xmlDocument)
 {
  MSXML2::IXMLDOMNodePtr newNode = xmlDocument->createNode(_variant_t((short)MSXML2::NODE_ELEMENT),nodeName,"");
  MSXML2::IXMLDOMNodePtr nextNode = refNode->GetnextSibling();
  if (nextNode.GetInterfacePtr() != NULL)
   newNode = m_xmlnode->insertBefore(newNode.Detach(),(IUnknown*)nextNode);
  else
   newNode = m_xmlnode->appendChild(newNode.Detach());
  return newNode.Detach();
 }
 return NULL;
}

void CXmlNodeWrapper::RemoveNodes(LPCTSTR searchStr)
{
 if (!IsValid())
  return;
 MSXML2::IXMLDOMNodeListPtr nodeList = m_xmlnode->selectNodes(searchStr);
 for (int i = 0; i < nodeList->Getlength(); i++)
 {
  try
  {
   MSXML2::IXMLDOMNode* pNode = nodeList->Getitem(i).Detach();
   pNode->GetparentNode()->removeChild(pNode);
  }
  catch (_com_error er)
  {
   AfxMessageBox(er.ErrorMessage());
  }
 }
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::Parent()
{
 if (IsValid())
  return m_xmlnode->GetparentNode().Detach();
 return NULL;
}

CXmlNodeListWrapper::CXmlNodeListWrapper()
{
}
CXmlNodeListWrapper::CXmlNodeListWrapper(MSXML2::IXMLDOMNodeListPtr pList)
{
 m_xmlnodelist = pList;
}

void CXmlNodeListWrapper::operator=(MSXML2::IXMLDOMNodeListPtr pList)
{
 if (IsValid())
  m_xmlnodelist.Release();
 m_xmlnodelist = pList;
}

CXmlNodeListWrapper::~CXmlNodeListWrapper()
{

}

int CXmlNodeListWrapper::Count()
{
 if (IsValid())
  return m_xmlnodelist->Getlength();
 else
  return 0;
 
}

BOOL CXmlNodeListWrapper::IsValid()
{
 if (m_xmlnodelist == NULL)
  return FALSE;
 if (m_xmlnodelist.GetInterfacePtr() == NULL)
  return FALSE;
 return TRUE;
}

MSXML2::IXMLDOMNode* CXmlNodeListWrapper::Next()
{
 if (IsValid())
  return m_xmlnodelist->nextNode().Detach();
 else
  return NULL;
}

void CXmlNodeListWrapper::Start()
{
 if (IsValid())
  m_xmlnodelist->reset();
}

MSXML2::IXMLDOMNode* CXmlNodeListWrapper::Node(int index)
{
 if (IsValid())
  return m_xmlnodelist->Getitem(index).Detach();
 else
  return NULL;
}

MSXML2::IXMLDOMDocument* CXmlNodeListWrapper::AsDocument()
{
 if (IsValid())
 {
  CXmlDocumentWrapper doc;
  doc.LoadXML("<NodeList></NodeList>");
  CXmlNodeWrapper root(doc.AsNode());
  
  for (int i = 0; i < m_xmlnodelist->Getlength(); i++)
  {
   root.InsertNode(root.NumNodes(),m_xmlnodelist->Getitem(i)->cloneNode(VARIANT_TRUE));
  }
  return doc.Detach();
 }
 else
  return NULL;
}

MSXML2::IXMLDOMNodeList* CXmlNodeWrapper::FindNodes(LPCTSTR searchStr)
{
 if(IsValid())
 {
  try{
   return m_xmlnode->selectNodes(searchStr).Detach();
  }
  catch (_com_error e)
  {
   CString err = e.ErrorMessage();
   return NULL;
  }
 }
 else
  return NULL;
}

CString CXmlNodeWrapper::Name()
{
 if (IsValid())
  return (LPCSTR)m_xmlnode->GetbaseName();
 return "";
}

MSXML2::IXMLDOMNode* CXmlNodeWrapper::InsertAfter(MSXML2::IXMLDOMNode *refNode, MSXML2::IXMLDOMNode *pNode)
{
 MSXML2::IXMLDOMNodePtr nextNode = refNode->GetnextSibling();
 MSXML2::IXMLDOMNodePtr newNode;
 if (nextNode.GetInterfacePtr() != NULL)
  newNode = m_xmlnode->insertBefore(pNode,(IUnknown*)nextNode);
 else
  newNode = m_xmlnode->appendChild(pNode);
 return newNode.Detach();
}

void CXmlNodeWrapper::SetText(LPCTSTR text)
{
 if (IsValid())
  m_xmlnode->Puttext(text);
}

CString CXmlNodeWrapper::GetText()
{
 if (IsValid())
  return (LPCSTR)m_xmlnode->Gettext();
 else
  return "";
}

void CXmlNodeWrapper::ReplaceNode(MSXML2::IXMLDOMNode *pOldNode, MSXML2::IXMLDOMNode *pNewNode)
{
 if (IsValid())
 {
  m_xmlnode->replaceChild(pNewNode,pOldNode);
 }
}

int CXmlNodeWrapper::NumAttributes()
{
 if (IsValid())
 {
  MSXML2::IXMLDOMNamedNodeMapPtr attribs = m_xmlnode->Getattributes();
  if (attribs)
   return attribs->Getlength();
 }

 return 0;
}

CString CXmlNodeWrapper::GetAttribName(int index)
{
 if (IsValid())
 {
  MSXML2::IXMLDOMNamedNodeMapPtr attribs = m_xmlnode->Getattributes();
  if (attribs)
  {
   MSXML2::IXMLDOMAttributePtr attrib = attribs->Getitem(index);
   if (attrib)
    return (LPCSTR)attrib->Getname();
  }
 }

 return "";
}

CString CXmlNodeWrapper::GetAttribVal(int index)
{
 if (IsValid())
 {
  MSXML2::IXMLDOMNamedNodeMapPtr attribs = m_xmlnode->Getattributes();
  if (attribs)
  {
   MSXML2::IXMLDOMAttributePtr attrib = attribs->Getitem(index);
   if (attrib)
    return (LPCSTR)attrib->Gettext();
  }
 }

 
 return "";
}

CString CXmlNodeWrapper::NodeType()
{
 if (IsValid())
  return (LPCSTR)m_xmlnode->GetnodeTypeString();
 return "";
}

紫光同创PGL50H开发板实战:盘古50KN网口板的高速通信与数据处理 本文详细介绍了紫光同创PGL50H开发板(盘古50KN网口板)在高速通信与数据处理领域的实战应用。文章从开箱、核心芯片解析、开发环境搭建入手,重点讲解了如何配置与测试其8路千兆以太网接口和SFP光纤接口,并深入探讨了FPGA与DDR3协同进行多路数据汇聚处理的系统架构与调试方法,为网络通信与高速数据处理系统开发提供了宝贵的实践经验。 阅读详情

相关推荐

【Go语言实战】(26) 分布式搜索引擎

基于go语言的分布式搜索引擎

面向生活编程 2346

vc中使用MSXML解析xml文件

(1)找了一些资料。http://www.xml.org.cn/dispbbs.asp?boardID=11&ID=23546(2)自己写的一个demo。// WebClient.cpp : Defines the entry point for the console application.//#include   "stdafx.h"   #include   afx.h> 

行风 3188

智能家居用电能耗管控系统研究与设计.pdf

智能家居用电能耗管控系统研究与设计.pdf

Msxml2.XMLHTTP Microsoft.XMLHTTP new XMLHttpRequest

客户端调用XMLHTTP的过程很简单,只有5个步骤: 1、创建XMLHTTP对象 2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。 客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。 3、发送指令。 4、等待并接收服务端返回的处理结果。 5、释放XMLHT...

weixin_30871701的博客 645

根据代码中的Msxml2.XMLHTTP,报系统错误

服务器遇到了msxml3.dll 错误'800c0005' 系统未找到指定的资源错误,原因可能是新装了防火墙,防火墙拦截了MSXML3.DLL访问网络,造成了'800c0005' 系统未找到指定的资源错误。有的网络为了确保安全,在本地IP,如22.33.11.221上,不能访问本地网站,而逐浪CMS有一系列的层会回访本地地址,校验URL,这样就造成了msxml访问错误。终极解决方法:在系统配置-网址中,将本地网址填为127.0.0.1,而不要填写公网IP,这样就可以解决此问题了。

m0_58367450的博客 623

VC中调用XMLHTTP对象访问远程数据的方法

Visual C++ Code//这里是DLL入口#import "C:/WINDOWS/system32/msxml.dll"#import "C:/WINDOWS/system32/msxml2.dll"using namespace MSXML2;HRESULT ComInit();#include "stdio.h"int APIENTRY WinMai

SupermanKing的专栏 4053

vc中通过MSXML操作XML文件

原文:http://www.codeproject.com/cpp/C___XML_wrapper.asp 对XML文件操作的时候,先安装XML解析器,并要到进行初始话,然后就可以用下面的封装好的类对XML文件进行读和写的操作了. 初始话很简单(和ADO的初始话工作类似),下边以基于对话框的工程(TEST)为例,进行初始话 只要在TEST.CPP的InitInstance()方法中加入 AfxOl...

深之JohnChen的专栏 3971

vc6.0 下利用MSXMLxml文件的基本操作

1:#import "msxml4.dll"          //加入导入库2:AfxOleInit();                           //初始化com组件3:void OnCreate() { // TODO: Add your control notification handler code hereMSXML2::IXMLDOMDocumentPtr

小石头的专栏 5481

VC中应用MSXML DOM操作XML文件

导入MS XML Parser 运行库#import  声明变量MSXML2::IXMLDOMDocumentPtr pDoc; MSXML2::IXMLDOMElementPtr  xmlRoot ; **)解析XML::CoInitialize(NULL);HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDo

1183

如何在VC环境下编写程序读取XML文件

如何在VC环境下编写程序读取XML文件?清提供源代码.谢谢. #import named_guids  //导入动态库,装了IE5就有using namespace MSXML2;     //引用命名空间,一般可以把命名空间理解成类和接口的集合,呵呵,对不对我也不知道了#include using namespace std;struct FIELD{public: CString  

tomcourageone的专栏 616

vc操作Xml--使用CMarkup类 - VC使用MSXML解析XML文档

VC使用MSXML解析XML文档 第一部分:DOM解析:       概述:DOM解析将会把一个完整的XML文档读进来,生成一个结构树。这样会要把XML文档全部都加载到内在中。所以解析起来的速度会要慢一些。     1、如何加载xml文件:          //创建DOM,加载XML文档          MSXML::IXMLDOMDocumentPtr

jasone123的专栏 710

VC读写XML文件

<br />http://blog.csdn.net/scq2099yt/archive/2008/03/11/2170294.aspx<br />  VC读写XML文件 收藏 <br />今天对XML文件进行了一些简单的读写操作,下面来具体实现步骤:<br />首先:建立一个基于Dialog的MFC工程,工程名为OperateXML,然后在对话框上添加两个按钮("Create"和"GetData"和一个ListControl<br />控件(用来显示数据),首先要导入库文件<br />#import "m

464

VCxml文件的读写

VCxml文件的读写http://blog.csdn.net/huanghui19860205/article/details/6029498 一、 用微软的   DOM,      MSXML4      //引入msxml4.dll      #import   "C:/WINNT.0/system32/msxml4.dll"           //创建XMLDOMD

shenghua 598

使用MSXML2解析XML文件

MFC使用MSXML2解析XML文件

weixin_45144862的博客 2669

XMLHTTP应用参考(收集)

一、使用步骤:1、创建XMLHTTP对象//需MSXML4.0支持2、打开与服务端的连接,同时定义指令发送方式,服务网页(URL)和请求权限等。客户端通过Open命令打开与服务端的服务网页的连接。与普通HTTP指令传送一样,可以用"GET"方法或"POST"方法指向服务端的服务网页。3、发送指令。4、等待并接收服务端返回的处理结果。5、释放XMLHTTP对象二、XMLHTTP方法:O...

weixin_33882452的博客 172

vs 调用com对象 Msxml2.XMLHTTP 获取网页源码

<br />到处扯 终于扯到 vs 能用的 com对象调用方式了<br /> <br />相信有不少人在找vs c++ 调用 com对象的方法<br /> <br />参考 http://topic.csdn.net/u/20070315/16/5a9a278f-4bf1-43e4-908e-a78ad69b0796.html<br /> <br /> <br />写的非常乱 也不知道有没有资源泄露<br />#include <Windows.h> #include <atlstr.h> //可以用 c

whitehack的专栏 4451

VC++中利用MSXML解析XML文档

一、 XML 简介   XML(Xtensible Markup Language,即扩展标记语言)的发展起源于1996年。当时,出版界巨头和Web业内人士经过共同讨论,提出了创建SGML(Standard Generalized Markup Language,即标准通用标识语言)子集(HML)的建议。该子集专用于Web,具有可扩展(或可扩充)性,并且能利用结构化标记语言的所有高级功 能,但摒弃

Chinawash 专栏 1457

msxml节点接口

MSXML对应的头文件<msxml2.h> IXMLDOMNode get_nodeName get_nodeValue put_nodeValue get_nodeType get_parentNode get_childNodes get_firstChild get_lastChild get_previousSibling get_nextSibling get_attributes insertBefore replaceChild removeChild appendChild ha

weixin_45834799的博客 585

msxml 有关操作

MSXML2::IXMLDOMDocument *pDoc; MSXML2::IXMLDOMNode *pChild, *pParent; MSXML2::IXMLDOMNode *pNod; MSXML2::IXMLDOMElement *pEle; 初始化指针:

倦鸟归时 847
上一篇: VC++的链接错误LNK2001(转贴)
下一篇: 函数尽量写功能性函数.
wei801004
博客等级 码龄22年 57粉丝 184原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值