用vc如何将xml文件中的数据导入mysql数据库中 用vc如何将xml文件中的数据导入mysql数据库中 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用MSXML来解析XML,这里要用到如下接口MSXML.DLL所包括的主要COM接口有: 1. IXMLDOMDocument(Document接口)DOMDocument 对象是XML DOM的基础,你可以利用它所暴露的属性和方法来浏览、查询和修改XML文档的内容和结构。DOMDocument表示了树的顶层节点,它 实现了DOM文档的所有的基本方法,并且提供了额外的成员函数来支持XSL和XSLT。它创建了一个文档对象,所有其他的对象都可以从这个文档对象中得到 和创建。 2. IXMLDOMNode(Node接口) IXMLDOMNode是文档对象模型(DOM)中的基本对象,元素、属性、注释、过程指令和其他的文档组件都可以认为是IXMLDOMNode。事实上,DOMDocument对象本身也是一个IXMLDOMNode对象。 3. IXMLDOMNodeList IXMLDOMNodeList实际上是一个节点(Node)对象的集合,节点的增加、删除和变化都可以在集合中立刻反映出来,可以通过"for.循环 "结构来遍历所有的节点。读出某一个结构下的各个节点属性,然后拼接成SQL语句,最后Insert进MySQL里面去。 编程举例1、目标文档: <book id="bk101"> <author>lizlex</author> <title>XML Developer's Guide</title> </book>2、步骤:(1)在StdAfx.h中引入动态链接库 MSXML.DLL(C:\windows\system32\msxml4.dll)#import <msxml4.dll>(2)界面设计:分别放入三个Text,用于输入数据,与显示文档内容用,并添加关联的成员变量m_strId,m_strAuthor, m_strTitle;并添加确定按钮:(3)产生文档的程序片断void CXmlparseDlg::OnButtonGenerate() {UpdateData();MSXML2::IXMLDOMDocumentPtr pDoc; MSXML2::IXMLDOMElementPtr xmlRoot ; //创建DOMDocument对象 HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); if(!SUCCEEDED(hr)) { MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!"); return ;} //根节点的名称为Book//创建元素并添加到文档中xmlRoot=pDoc->createElement((_bstr_t)"Book");//设置属性xmlRoot->setAttribute("id",(const char *)m_strId);pDoc->appendChild(xmlRoot);MSXML2::IXMLDOMElementPtr pNode;//添加“author”元素pNode=pDoc->createElement((_bstr_t)"Author");pNode->Puttext((_bstr_t)(const char *)m_strAuthor);xmlRoot->appendChild(pNode);//添加“Title”元素pNode=pDoc->createElement("Title");pNode->Puttext((const char *)m_strTitle);xmlRoot->appendChild(pNode);//保存到文件 //如果不存在就建立,存在就覆盖 pDoc->save("d:\\he.xml");}(4)读取XML文档的程序片断void CXmlparseDlg::OnButtonLoad() {MSXML2::IXMLDOMDocumentPtr pDoc;HRESULT hr;hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));if(FAILED(hr)){ MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!"); return ;} //加载文件 pDoc->load("d:\\he.xml"); MSXML2::IXMLDOMNodePtr pNode;//在树中查找名为Book的节点,"//"表示在任意一层查找 pNode=pDoc->selectSingleNode("//Book");MSXML2::DOMNodeType nodeType; //得到节点类型 pNode->get_nodeType(&nodeType); //节点名称 CString strName;strName=(char *)pNode->GetnodeName();//节点属性,放在链表中 MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL;MSXML2::IXMLDOMNodePtr pAttrItem;_variant_t variantvalue;pNode->get_attributes(&pAttrMap);long count;count=pAttrMap->get_length(&count);pAttrMap->get_item(0,&pAttrItem);//取得节点的值pAttrItem->get_nodeTypedvalue(&variantvalue);m_strId=(char *)(_bstr_t)variantvalue;UpdateData(FALSE);} VC操作MySQL参见http://blog.csdn.net/liunx_cj/archive/2008/07/09/2630622.aspx 一个socket客户端等待回应的问题 GB18030实现工具 字符串如何显示到DLG上! 关于null的问题.....急!!! 如何判断没有连接上http服务器? 如何增加VC6中源码编辑的字体种类? 怎么能得到一个目录下的所有文件名(现在也不让搜索了,帮帮我) 谁知道怎样识别弹出广告窗口 关于DAO的问题,各位高手请帮忙,急! 软件发布的打包程序 求教API函数的获取 [急切求助]把指定目录下的所有文件名(包括文件夹和非文件夹)和绝对路径按行导出到TXT文件。。。
1. IXMLDOMDocument(Document接口)
DOMDocument 对象是XML DOM的基础,你可以利用它所暴露的属性和方法来浏览、查询和修改XML文档的内容和结构。DOMDocument表示了树的顶层节点,它 实现了DOM文档的所有的基本方法,并且提供了额外的成员函数来支持XSL和XSLT。它创建了一个文档对象,所有其他的对象都可以从这个文档对象中得到 和创建。
2. IXMLDOMNode(Node接口)
IXMLDOMNode是文档对象模型(DOM)中的基本对象,元素、属性、注释、过程指令和其他的文档组件都可以认为是IXMLDOMNode。事实上,DOMDocument对象本身也是一个IXMLDOMNode对象。
3. IXMLDOMNodeList
IXMLDOMNodeList实际上是一个节点(Node)对象的集合,节点的增加、删除和变化都可以在集合中立刻反映出来,可以通过"for.循环 "结构来遍历所有的节点。读出某一个结构下的各个节点属性,然后拼接成SQL语句,最后Insert进MySQL里面去。
1、目标文档: <book id="bk101">
<author>lizlex</author>
<title>XML Developer's Guide</title>
</book>2、步骤:(1)在StdAfx.h中引入动态链接库 MSXML.DLL(C:\windows\system32\msxml4.dll)
#import <msxml4.dll>(2)界面设计:
分别放入三个Text,用于输入数据,与显示文档内容用,并添加关联的成员变量m_strId,m_strAuthor, m_strTitle;并添加确定按钮:(3)产生文档的程序片断
void CXmlparseDlg::OnButtonGenerate()
{
UpdateData();MSXML2::IXMLDOMDocumentPtr pDoc;
MSXML2::IXMLDOMElementPtr xmlRoot ; //创建DOMDocument对象
HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
if(!SUCCEEDED(hr))
{
MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
return ;
} //根节点的名称为Book
//创建元素并添加到文档中
xmlRoot=pDoc->createElement((_bstr_t)"Book");//设置属性
xmlRoot->setAttribute("id",(const char *)m_strId);
pDoc->appendChild(xmlRoot);
MSXML2::IXMLDOMElementPtr pNode;//添加“author”元素
pNode=pDoc->createElement((_bstr_t)"Author");
pNode->Puttext((_bstr_t)(const char *)m_strAuthor);
xmlRoot->appendChild(pNode);//添加“Title”元素
pNode=pDoc->createElement("Title");
pNode->Puttext((const char *)m_strTitle);
xmlRoot->appendChild(pNode);//保存到文件
//如果不存在就建立,存在就覆盖
pDoc->save("d:\\he.xml");}(4)读取XML文档的程序片断
void CXmlparseDlg::OnButtonLoad()
{
MSXML2::IXMLDOMDocumentPtr pDoc;
HRESULT hr;
hr=pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));
if(FAILED(hr))
{
MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
return ;
} //加载文件
pDoc->load("d:\\he.xml"); MSXML2::IXMLDOMNodePtr pNode;//在树中查找名为Book的节点,"//"表示在任意一层查找
pNode=pDoc->selectSingleNode("//Book");MSXML2::DOMNodeType nodeType; //得到节点类型
pNode->get_nodeType(&nodeType); //节点名称
CString strName;strName=(char *)pNode->GetnodeName();//节点属性,放在链表中
MSXML2::IXMLDOMNamedNodeMapPtr pAttrMap=NULL;
MSXML2::IXMLDOMNodePtr pAttrItem;
_variant_t variantvalue;
pNode->get_attributes(&pAttrMap);long count;
count=pAttrMap->get_length(&count);pAttrMap->get_item(0,&pAttrItem);
//取得节点的值
pAttrItem->get_nodeTypedvalue(&variantvalue);
m_strId=(char *)(_bstr_t)variantvalue;UpdateData(FALSE);}