网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
在delphi中使用xml文档有两种方法
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
实现为一系列的COM对象, 主要包括 msxml3.dll, msxml3a.dll, msxml3r.dll 三个动态链接库。

这里我只说一下通过IXMLDocument来完成XML的解析, 这里你只需要关心节点Node和节点集合NodeList 接口(Interface)既完成XML对象的获取 ,这也是我们通常会使用的方法。

首先我们来看一种通过遍历节点的方法,先来熟悉几个属性:

Version :WideString 文档的版本号。

DocumentElement :IXMLNode 根节点, 比如上面实例的对象。通过根节点您就能开始遍历整个XML节点数.

ChildNodes :IXMLNodeList 当前节点的子节点集合。

Node[ Nodeindex or NodeName ] :IXMLNode XML的节点。 通过节点,您可以通过它的Text ,attribute 属性来获取节点的内容和属性。也可以使用GetNode、Get方法来获取节点。



对,没错,就是这么几个关键的属性就可以完成XML的解析工作。通过下面的示范程序您可以了解如何通过这几个属性来从XML中获取我们想要的信息。

Var XMLDocument :IXMLDocument;

XMLNode :IXMLNode;

begin

XMLDocument := TXMLDocument.Create( ‘d:\test.xml’ );

XMLDocument.Active := True;

XMLNode := XMLDocumen.Document.Element;

Memo1.Line.Add( ‘根节点的名字为:’ + XMLNode.Name );

Memo1.Line.Add( ‘根节点下的子节点数目为: ‘ + IntToStr( XMLNode.ChildNodes.Count ));

XMLNode := XMLNode.ChildNodes.Node; // 将当前访问的节点的第三个子节点置为要访问的节点memo.

Memo1.Line.Add( ‘根节点下的第三个子节点的名字’ + XMLNode.Name );

if XMLNode.HasAttribute( ‘color’ ) then

Memo1.Line.Add( ‘该节点的属性color:’ + XMLNode.Attribute[‘color’] )

Else

Memo1.Line.Add( ‘该节点没有属性 color, 或者大小写不正确!’ );

If XMLNode.IsTextElement then

Memo1.Line.Add( ‘该节点包含有内容Text: ‘ + XMLNode.Text )

Else

Memo1.Line.Add(‘该节点为非叶子节点, 不能包含内容Text!’ );

XMLNode := nil;

XMLDocument.Free;

XMLDocument := nil;

End;

节点内的属性读取还有个快捷方法。通过 IXMLNode 的AttributeNodes 属性,能将该Node 的属性以节点的方式映射出来。 这样通过 NodeName 和NodeValue 属性就能读出每个属性的值。AttributeNodes.Count 说明了该节点包含的属性个数。如下面的代码片断。

// 获取指定的节点

XMLNode := GetNode( strNodePath, intRowIndex, dep );

Result := True;

// End 。

if not assigned( XMLNode ) then

begin

Result := False; // 无效的节点或者该节点不能包括单独的Text

exit;

end;

// 逐个获取该节点的属性和属性值

for i := 0 to XMLNode.AttributeNodes.Count - 1 do

begin

sltAttributeName.Add( XMLNode.AttributeNodes.Nodes[i].NodeName );

sltAttributeValue.Add( XMLNode.AttributeNodes.Nodes[i].NodeValue );

end;

// end .

另外对于一个有固定格式的文档, Delphi还提供了一种叫做数据绑定向导的方法来实现解析。 这样的优点是你根本就不要在取考虑什么节点子节点之类头疼的问题了,通过Delphi向导生成的XML文档接口,你可以像访问普通的对象一样来访问XML中的对象。 下面我们也来谈一下如何通过这种方法来实现解析。

1. 准备好你要解析的XML文档典型实例。这至关重要,因为Delphi需

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号