VC处理XML文档类的开发
来源:互联网 发布:java开发微信公众号 编辑:程序博客网 时间:2024/06/06 10:06
#pragma once
//--------------------------------------------------------//
#import <msxml6.dll>
#import "msxml.dll"
using namespace MSXML;
//--------------------------------------------------------//
class CMyXML
{
public:
CMyXML(void);
public:
~CMyXML(void);
public:
MSXML::IXMLDOMDocumentPtr XMLDoc;
int LoadXMLStr(CString Str);
int LoadXMLFile(CString FileName);
protected:
int Init(void);
public:
int CreateNode(CString NodePath, CString NodeName);
int CreateNode(CString NodePath, CString NodeName, CString Value);
int ResetNodeValue(CString NodePath, CString Value);
int DelteNode(CString ParentNodePath, CString NodePath);
CString GetXml(void);
CString GetNodeValue(CString NodePath);
CString GetAttribute(CString NodeListName, CString AttributeName);
//CString GetAttribute(CString NodeListName, CString AttributeName1, CString AttributeName2);
//IXMLDOMNodeList GetNodeList(char* ElementsByTagName);
};
------------------------------------------------------------
#include "stdafx.h"
#include "MyXML.h"
CMyXML::CMyXML(void)
{
}
CMyXML::~CMyXML(void)
{
XMLDoc=NULL;
}
int CMyXML::Init(void)
{
HRESULT hr = ::CoInitialize(NULL); //COM的初始化
if (!SUCCEEDED(hr))
return -1;
XMLDoc.CreateInstance(__uuidof(MSXML::DOMDocument));
return 0;
}
int CMyXML::LoadXMLStr(CString Str)
{
if (Init())
{
return -1;
}
if(!XMLDoc->loadXML(_bstr_t(Str)))
{
return -1;
}
return 0;
}
int CMyXML::LoadXMLFile(CString FileName)
{
if (Init())
{
return -1;
}
if(!XMLDoc->load((_bstr_t)FileName))
{
return -1;
}
return 0;
}
CString CMyXML::GetXml(void)
{
//return XMLDoc->Gettext();
CString str=XMLDoc->Gettext();
return str;
}
int CMyXML::CreateNode(CString NodePath, CString NodeName)
{
try
{
MSXML::IXMLDOMNodePtr RootNode = NULL;
MSXML::IXMLDOMNodePtr NewNode = NULL;
RootNode = XMLDoc->selectSingleNode((_bstr_t)NodePath);
NewNode = XMLDoc->createNode(MSXML::NODE_DOCUMENT_TYPE, (_bstr_t)NodeName, "");
RootNode->appendChild(NewNode);
}catch(...)
{
}
return 0;
}
int CMyXML::CreateNode(CString NodePath, CString NodeName, CString Value)
{
try
{
MSXML::IXMLDOMNodePtr RootNode = NULL;
MSXML::IXMLDOMNodePtr NewNode = NULL;
RootNode = XMLDoc->selectSingleNode((_bstr_t)NodePath);
NewNode = XMLDoc->createNode(MSXML::NODE_DOCUMENT_TYPE, (_bstr_t)NodeName, "");
NewNode->nodeValue=(_bstr_t)Value; //
RootNode->appendChild(NewNode);
}catch(...)
{
}
return 0;
}
int CMyXML::ResetNodeValue(CString NodePath, CString Value)
{
try
{
MSXML::IXMLDOMNodePtr RootNode = NULL;
RootNode = XMLDoc->selectSingleNode((_bstr_t)NodePath);
RootNode->nodeValue=(_bstr_t)Value; //
}catch(...)
{
}
return 0;
}
int CMyXML::DelteNode(CString ParentNodePath, CString NodePath)
{
try
{
MSXML::IXMLDOMNodePtr RootNode = NULL;
MSXML::IXMLDOMNodePtr DeleteNode = NULL;
RootNode = XMLDoc->selectSingleNode((_bstr_t)ParentNodePath);
DeleteNode = XMLDoc->selectSingleNode((_bstr_t)NodePath);
RootNode->removeChild(DeleteNode);
}catch(...)
{
}
return 0;
}
CString CMyXML::GetNodeValue(CString NodePath)
{
try
{
CString str= XMLDoc->selectSingleNode((_bstr_t)NodePath)->Gettext(); //return XMLDoc->selectSingleNode((_bstr_t)NodePath)->Gettext();
return str;
}catch(...) //catch(CException* ex)
{
}
return 0;
}
CString CMyXML::GetAttribute(CString NodeListName, CString AttributeName)
{
MSXML::IXMLDOMNode *DOMNode = NULL;
try
{
MSXML::IXMLDOMNodeListPtr NodeList=XMLDoc->getElementsByTagName((_bstr_t)NodeListName);
CString sAttributeName;
for(int i=0; i<NodeList->length; i++)
{
NodeList->get_item(i,&DOMNode);
BSTR bAttributeName = DOMNode->Getattributes()->getNamedItem((_bstr_t)AttributeName)->Gettext(); //strContest = (LPCSTR)DOMNode->text;
sAttributeName=bAttributeName;
return sAttributeName;
}
}
catch (...)
{
}
delete DOMNode;
return 0;
}
//CString CMyXML::GetAttribute(CString NodeListName, CString AttributeName1, CString AttributeName2)
//{
// try
// {
// MSXML::IXMLDOMNodeListPtr NodeList=XMLDoc->getElementsByTagName((_bstr_t)NodeListName);
// MSXML::IXMLDOMNode *DOMNode = NULL;
// CString strContest;
// for(int i=0; i<NodeList->length; i++)
// {
// NodeList->get_item(i,&DOMNode);
// BSTR m_type = DOMNode->Getattributes()->getNamedItem((_bstr_t)AttributeName1)->Gettext();
// strContest=m_type;
// strContest = (LPCSTR)DOMNode->text;
// AfxMessageBox(strContest);
// }
// }
// catch (_com_error &err)
// {
// CString strErr = (LPCTSTR)err.Description();
// AfxMessageBox(strErr);
// }
// return 0;
//}
// TCHAR szError[1024];
// e->GetErrorMessage(szError,1024); // e.GetErrorMessage(szError,1024);
// ::AfxMessageBox(szError);
// 删除异常
// e->Delete();
//for(int i=0; i<NodeList->length; i++)
// {
// NodeList->get_item(i,&DOMNode);
// BSTR m_type = DOMNode->Getattributes()->getNamedItem((_bstr_t)NodeName)->Gettext();
// strContest = (LPCSTR)DOMNode->text;
// AfxMessageBox(strContest);
//}
- VC处理XML文档类的开发
- VC处理xml的方法
- VC处理xml的方法
- VC读取XML文档的方法
- VC读写XML文档
- utf8编码的xml文档CMarkup类处理不了
- Java里面对XML文档的处理
- 使用JDOM处理XML文档的技巧
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- JDOM处理XML文档的例子
- C#中处理XML文档的方法
- C#中处理XML文档的方法
- 基于互联网语料的“机器翻译助手”
- end ()
- 删除(erase)
- 查找(find)
- find_first_of
- VC处理XML文档类的开发
- 面试模拟题4
- IE6躲躲猫bug -IE6 Peekaboo Bug
- 面试模拟题5
- 我国公布整治互联网低俗之风第二批曝光网站名单
- 安装某个程序所需的依赖包
- Solaris的minor device
- 工程索引(Engineering Index, Ei)数据库中被《Ei Compendex》收录与被《Ei Pageone》收录数据的区别和识辨
- IIS上安装PHP