VC入门宝典十一(xml)

简介: VC入门宝典十一(xml)

我们建立一个xml文件,内容如图所示:


,建立一个基于对话框的程序,工程名为xml;

, 初始化OLE.

BOOL CXmlApp::InitInstance()
{
         AfxOleInit();
…….
}

, 在对话框中增加一个按钮,IDIDC_CREATE,我们在这个按钮的响应函数中生成一个xml文件.

void CXmlDlg::OnCreate()
{
         MSXML2::IXMLDOMDocumentPtr pDoc;
         MSXML2::IXMLDOMElementPtr  xmlRoot ;
         //创建DOMDocument对象
         HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
         if(!SUCCEEDED(hr))
         {               
                   MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
         }
         //根节点的名称为china
         pDoc->raw_createElement((_bstr_t)(char*)"china", &xmlRoot);
         pDoc->raw_appendChild(xmlRoot, NULL);
         MSXML2::IXMLDOMElementPtr  childNode ;        
         pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
         childNode->Puttext("WuHan");//节点值
         childNode->setAttribute("population","8,000,000");//属性名,属性值
         childNode->setAttribute("area","10000");
         xmlRoot->appendChild(childNode);
         pDoc->raw_createElement((_bstr_t)(char*)"City", &childNode);
         childNode->Puttext("ShangHai");
         childNode->setAttribute("population","12,000,000");
         childNode->setAttribute("area","12000");
         xmlRoot->appendChild(childNode);
         //保存到文件
         //如果不存在就建立,存在就覆盖
         pDoc->save("f://he.xml");
}

不要忘了#import "msxml4.dll" //引入类型库

 

, 再增加一个按钮,IDIDC_GET,在这个按钮的响应函数中读取xml文件.

void CXmlDlg::OnGet()
{
         //创建DOMDocument对象
         MSXML2::IXMLDOMDocumentPtr pDoc;
         HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
         if(!SUCCEEDED(hr))
         {               
                   MessageBox("无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库!");
         }
         //加载文件
         pDoc->load("f://he.xml");
         //在树中查找名为City的节点,"//"表示在任意一层查找
         MSXML2::IXMLDOMElementPtr  childNode ;
         childNode = (MSXML2::IXMLDOMElementPtr)(pDoc->selectSingleNode("//City"));
         //得到节点类型
         MSXML2::DOMNodeType nodeType;
         childNode->get_nodeType(&nodeType);
         //节点名称
         BSTR var;
         CString name;
         childNode->get_nodeName(&var);
         name = (char*)(_bstr_t)var;
         //节点值
         VARIANT varVal;
         childNode->get_nodeTypedValue(&varVal);
         CString strValue = (char*)(_bstr_t)varVal;
         //节点属性,放在链表中
         MSXML2::IXMLDOMNamedNodeMapPtr pAttrs = NULL;
         MSXML2::IXMLDOMNodePtr pAttrItem;
         childNode->get_attributes(&pAttrs);
         long nCount ;
         pAttrs->get_length(&nCount);
         for(int i = 0 ; i < nCount ; i++)
         {                
                   pAttrs->get_item(i,&pAttrItem);
                   //我们可以通过函数get_nodeName,get_nodeTypedValue得到属性名和属性值
                   //也可以直接得到
                   CString strAttrName   = (char*)(_bstr_t)pAttrItem->nodeName;
                   CString strAttrValue  = (char*)(_bstr_t)pAttrItem->nodeTypedValue;
         }
}

 


相关文章
|
XML Java 数据格式
一.Xml建模之入门
一.Xml建模之入门
69 1
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
1月前
|
XML 前端开发 Java
XML基本概念入门学习指南
XML(eXtensible Markup Language)是一种可扩展的标记语言,和HTML语言语法类似,同属于标记语言。
78 14
|
6月前
|
XML Java 数据库连接
MyBatis入门——MyBatis XML配置文件(3)
MyBatis入门——MyBatis XML配置文件(3)
107 6
|
4月前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
4月前
|
XML Java 数据格式
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
这篇文章是Spring5框架的入门教程,详细讲解了IOC容器中Bean的自动装配机制,包括手动装配、`byName`和`byType`两种自动装配方式,并通过XML配置文件和Java代码示例展示了如何在Spring中实现自动装配。
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
|
4月前
|
XML Java 数据库
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
这篇文章是Spring5框架的实战教程,详细介绍了事务的概念、ACID特性、事务操作的场景,并通过实际的银行转账示例,演示了Spring框架中声明式事务管理的实现,包括使用注解和XML配置两种方式,以及如何配置事务参数来控制事务的行为。
Spring5入门到实战------15、事务操作---概念--场景---声明式事务管理---事务参数--注解方式---xml方式
|
7月前
|
XML 安全 Java
从零手写实现 apache Tomcat-02-web.xml 入门详细介绍
`web.xml`是Java Web应用的核心配置文件,描述应用工作方式。它包含Servlet、Filter和Listener的定义。例如,示例展示了如何配置名为`my`的Servlet处理`/my`请求,`LoggingFilter`拦截所有请求,以及`MyServletContextAttrListener`监听应用事件。`web.xml`是服务器理解应用结构与行为的指南。迷你版Tomcat实现——mini-cat(开源:https://github.com/houbb/minicat)。
|
7月前
|
XML Java 数据库连接
Spring Data JPA入门简解与XML配置实现
Spring Data JPA入门简解与XML配置实现
312 0
|
XML 数据管理 数据处理
XML入门,之dtd属性与元素详解
XML入门,之dtd属性与元素详解
69 1