地址路径 //para 与地址路径 /descendant::para 的含意不一样,后者选择第一个 para 元素子孙,前者选择是他们的父的第一 para 孩子的所有的子孙 para 元素。
地点路进 . 是 self::node() 的缩写。这与 // 一起使用特别有用。例如,地址路径 .//para 是 self::node()/descendant-or-self::node()/child::para 的缩写,因此将选择上下文节点的所有的 para 子孙元素。
同样,地址路径 .. 是 parent::node() 的缩写。例如,../title 是 parent::node()/child::title 的缩写因此这将选择上下文节点的父的 title 孩子。
2005-9-23 21:05:34 xml基础操作实例,因为刚开始学,如果有不对的地方,请批评指正,代码如下:
unit XMLOptionUnit;
//==============================================================================
//本实例演示
//1,XML 创建,打开,关闭操作
//2,XML 填加,添加到指定位置,删除,修改(替换),查找等操作
//作者:cactus123456@hotmail.com
//日期:2005.9.23
//版本:1.0
//==============================================================================
interface
uses
SysUtils,ActiveX,MSXML2_TLB;
type
RecUser=Record
U_Id :widestring;
U_Name :widestring;
U_Sex :widestring;
U_Birth :widestring;
U_Tel :widestring;
U_Addr :widestring;
U_PostCode :widestring;
U_Email :widestring;
end;
type
TXMLOption=class
private
FActive :boolean;
FFilename: string;
FXMLDoc :IXMLDOMDocument;
//填加一个子节点
procedure AddSimpleElement(Parent: IXMLDOMElement; Field,Value: string);
public
procedure CreateBlank(Filename: string);
procedure OpenXml(Filename: string);
procedure CloseXml;
procedure AppendUser(muser:RecUser);
procedure InsertUser(uid:string;muser:RecUser);
procedure RemoveUser(uid:string);
procedure ReplaceUser(uid:string;newuser:RecUser);
function FindUser(userid:widestring):boolean;
end;
implementation
const
XMLTag = ''xml'';
XMLPrologAttrs = ''version="1.0" encoding="UTF-8"'';
XMLComment = ''简单XML文档操作用户实例''#13 +
''用户结构为序号,姓名,性别,出生年月日,电话,住址,邮编,电邮''#13 +
''作者 cactus123456@hotmail.com, 2005.9.21'';
UserWatcherTag = ''user-watcher'';
XMLComment2 = ''创建文档时间:'';
UsersTag = ''users'';
&n