e股脑电脑教程网
  • 首 页
  • 操作系统
  • 应用软件
  • 下载工具
  • 影音视频
  • 办公软件
  • 媒体制作
  • 网站建设
  • 平面设计
  • 数据库
  • 程序开发
  • 视频教程
编辑推荐: | 文章搜索:
您现在的位置: e股脑 >> 程序开发 >> XML教程 >> XML编程实例(二) >> 教程正文
 
教程搜索
 
 
相关教程
  • XML技术入门
  • XML中的常见问题
  • Sparks.com用XML和XSL来生成动态页面
  • 使用XML上传文件
  • 用XML实现弹出式菜单(附图)
  • XML编程实例(二)
  • 编制新的MSDN目录(FromMSDN)
  • XML数据的编码方式
  • XML和数据库
  • XML编程实例(一)
  • 标记语言巨星访谈录--与JamesClark同步
  • XSLT轻松入门提纲
  • XSLT轻松入门第二章:XSLT的实例(1)
  • XSLT轻松入门第二章:XSLT的实例(3)
  • XSLT轻松入门第三章:XSLT的元素语法(
  • XSLT轻松入门第五章:XSLT的资源
 
 

图文教程


  • Windows抢了谁的饭碗 非主流操作系统To

  • 地球还是火星 平常心看“非主流”

  • 综合运用Office 2007批量制作奖状

  • 没有系统盘如何才能修复受损系统?

  • 巧妙运用Excel中边界的附加功能!
 
 
赞 助 商
 
 
XML编程实例(二)
  • 来源:e股脑
  • 点击次数:
  • 更新时间:2007-8-9

XML编程实例(二)

DOM 模型: 前面已经说了,对于DOM模型来说,整个XML文件被解析成一个树形的结构。所有的标签、属性等都被当作对象来看待。所以,必须了解清楚对象的含义,及其相互关系,方能正确操作。 为了先有一个感性认识,让我们开始吧。(为了方便说明,代码里基本上没有异常处理) 生成一个XML 文本

假设我们要创建一个如下的XML文本

<China>

<Beijing> -11 </Beijing>

<Shanghai weather=”Cloudy”> 9 </Shanghai>

</China>

我们首先应该先创建一个 Document 对象 ,如下:MSXML::IXMLDOMDocumentPtr pDoc;

pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));

如果创建成功,那么我们就会得到一个XMLDOMDocument对象实例。

下一步就是添加 根节点DocumentElement ,记住XML只有一个根。

创建Element 对象 作为根节点MSXML::IXMLDOMElementPtr pDocElement=pDoc->createElement("China"); 把根节点插入到目录树中 pDoc->appendChild(pDocElement); 好了,生成一个树根了,我们现在来看一看结果:用pDoc -> xml 可以取得整个 DOM 对象的文本 因为树根下没有任何东西,所以只显示<China/> 现在,我们要在树根下插入子节点 ,并设置节点文本 (Text)

MSXML::IXMLDOMElementPtr pNewChildElement;

pNewChildElement=pDoc->createElement("Beijing");

pNewChildElement->Puttext("-11"); pDocElement->appendChild(pNewChildElement); 这时候整个的 XML文本应该为<China> <Beijing> -11 </Beijing></China> 再增加一个子节点,并设置节点属性 (Attribute) pNewChildElement=pDoc->createElement("Shanghai");pNewChildElement->Puttext("9"); pNewChildElement->setAttribute("Weather",_variant_t("Cloudy")); pDocElement->appendChild(pNewChildElement); 于是,我们就可以得到预期的XML文本了。其他的操作: 删除操作 : 从父节点来删除子节点pDocElement->removeChild(pNewChildElement)存盘操作 : pDoc->Save(); 装载已有XML 文本

如果我们已经有了一个XML文件,想对其进行解析,那么可以使用Document 对象的Load 或LoadXML 来进行加载 ,并在加载的同时进行语法分析。

如果加载成功,那么就会在内存中生成一个树形结构。利用DOM模型,我们就可以进行各种操作。最常见的是,我们需要寻找特定的信息,并进行处理。

查找定位 使用SelectSingleNode (XPath ),SelectNodes(XPath )来定位标签,取得对应的Node(s)对象。 XPath

XPath是类似于文件路径名的字符串,也像SQL的查询语句,可以限定查找范围。

找到指定对象,我们就可各种处理了,添加、删除、取值等等。

小结 :上面仅仅是对DOM模型的编程进行了简单的介绍,以期快速入门。要详细了解,还必须查阅SDK的文档。如果可能,将在以后介绍SAX 模型、XSLT对 XML的转换等。


相关链接 :要使用MSXML Parser ,你必须先下载其SDK和运行库。

http://download.microsoft.com/download/xml/Install/3.0/WIN98Me/EN-US/msxml3.exe

http://download.microsoft.com/download/xml/SDK/3.0/WIN98Me/EN-US/xmlsdk.exe

//-------------下面是代码实例-----------

#include "stdafx.h"

#include "iostream.h"

#include "msxml.h"

#include "atlbase.h"

#import "msxml.dll" //引入类型库

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

int Exit();

void LoadFromString();

void CreateXML();

//XML文本模板

_bstr_t XMLTemple="<China><Beijing> -11 </Beijing><Shanghai Weather=\"Cloudy\"> 9 </Shanghai></China>";

int main()

{

cout << " XML编程--示范程序 " << endl;

CoInitialize(NULL); //初始化COM 环境

cout << "------生成新的XML文本 ------" << endl;

CreateXML();

cout << "------读取已有XML文本 ------" << endl;

LoadFromString();

return Exit();

}

void CreateXML()

{

MSXML::IXMLDOMDocumentPtr pDoc;

HRESULT hr =pDoc.CreateInstance(__uuidof(MSXML::DOMDocument));

if(!SUCCEEDED(hr))

{

cout << "无法创建DOMDocument对象,请检查是否安装了MS XM

1 2 下一页
  • 上一篇教程: 编制新的MSDN目录(FromMSDN)
  • 下一篇教程: 用XML实现弹出式菜单(附图)
  •  

    关于本站 | 广告联系 | 版权声明 | 使用帮助

    Copyright © 2004-2008 www.egunao.com All rights reserved.