Delphi 中的 XMLDocument 类详解(13) - 关于 XML 属性

简介:

unit  Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, StdCtrls;

type
TForm1 
=   class (TForm)
XMLDocument1: TXMLDocument;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
procedure  FormCreate(Sender: TObject);
procedure  Button1Click(Sender: TObject);
procedure  Button2Click(Sender: TObject);
procedure  Button3Click(Sender: TObject);
procedure  Button4Click(Sender: TObject);
procedure  Button5Click(Sender: TObject);
end ;

var
Form1: TForm1;

implementation

{ $R *.dfm }

// 打开
procedure  TForm1.FormCreate(Sender: TObject);
begin
XMLDocument1.LoadFromFile(
' c:\temp\test.xml ' );
{ 必须用万一提供的 xml 测试文件, 才能有相同的返回值 }
end ;


// XMLDocument1 对象的 XML 属性
procedure  TForm1.Button1Click(Sender: TObject);
begin
{ 前面我们经常用这句话, 因为这里的 Lines 与 XML 同属于 TStrings }
Memo1.Lines :
=  XMLDocument1.XML;

{ 如果不怕麻烦, 这样写也可以: }
Memo1.Lines.Text :
=  XMLDocument1.XML.Text;

{ 如果知道了这一点, 那 XML 属性的功能可就多了, 并且这里的 XML 属性是可写的 }
{ 不过这里要谈的是节点的 XML 属性 }
end ;


// 根节点的 XML 属性
procedure  TForm1.Button2Click(Sender: TObject);
var
node: IXMLNode;
begin
{ 先看根节点: XMLDocument1.DocumentElement }
node :
=  XMLDocument1.DocumentElement;

// Memo1.Lines : =  node.XML;  { 这一句会出错 }
{ 因为节点的 XML 属性是 WideString 类型的, 应该这样: }
Memo1.Lines.Text :
=  node.XML;  { 将会读出根节点与根节点包含的所有内容 }

{ 还有一个更大的区别: 节点的 XML 是只读的! }
end ;


// 子节点的 XML 属性
procedure  TForm1.Button3Click(Sender: TObject);
var
node: IXMLNode;
begin
node :
=  XMLDocument1.DocumentElement;
node :
=  node.ChildNodes[ 0 ];

Memo1.Lines.Text :
=  node.XML;  { 会显示一个子节点的全部 }
end ;


// 属性的 XML 属性
procedure  TForm1.Button4Click(Sender: TObject);
var
node: IXMLNode;
begin
node :
=  XMLDocument1.DocumentElement;
node :
=  node.AttributeNodes[ 0 ];  { 属性也是 IXMLNode 类型的 }

ShowMessage(node.NodeName); 
{ 备注 }
ShowMessage(node.NodeValue); 
{ 测试 }

{ 用 XML 属性一次把他们都读出来: }
ShowMessage(node.XML); 
{ 备注="测试" }
end ;


// 叶节点的 XML 属性
procedure  TForm1.Button5Click(Sender: TObject);
var
node: IXMLNode;
begin
node :
=  XMLDocument1.DocumentElement;
node :
=  node.ChildNodes[ 0 ];
node :
=  node.ChildNodes[ 0 ];
node :
=  node.ChildNodes[ 0 ];  { 这就是叶节点了 }

ShowMessage(node.XML); 
{ 张三 }

{ 这时的 XML 属性和 Text 属性一样了 }
ShowMessage(node.Text); 
{ 张三 }
end ;

end .
复制代码



本文转自黄聪博客园博客,原文链接:http://www.cnblogs.com/huangcong/archive/2010/08/27/1809947.html,如需转载请自行联系原作者
相关文章
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
2月前
|
XML 存储 数据格式
|
7月前
|
XML JavaScript 前端开发
XML DOM - 属性和方法
XML DOM通过属性(如nodeName、nodeValue、parentNode、childNodes和attributes)和方法提供编程接口,让开发者用JavaScript等语言以节点方式交互XML。属性描述节点信息,方法执行操作,如删除节点。
|
7月前
|
XML JavaScript 前端开发
属性和方法向 XML DOM 定义了编程接口
XML DOM 提供编程接口,通过属性和方法操作XML结构。使用JavaScript等语言,可访问和修改节点。属性如nodeName、nodeValue揭示节点信息,方法如getElementsByTagName、appendChild、removeChild实现查找、添加和删除节点功能。节点对象x的应用示例贯穿其中。
|
4月前
|
XML 存储 数据库
XML 中的元素和属性
【8月更文挑战第22天】
68 0
|
7月前
|
XML JavaScript 前端开发
XML DOM - 属性和方法
**XML DOM 提供编程接口,将XML转换为节点对象,便于通过JS等语言操作。属性如 nodeName、nodeValue、parentNode、childNodes 和 attributes 描述节点详情。方法用于执行操作,如删除节点。**
|
6月前
|
XML JavaScript 前端开发
属性和方法向 XML DOM 定义了编程接口
XML DOM 是一个编程接口,它将XML表示为节点对象集合,可通过JavaScript等语言访问。接口通过属性和方法定义,属性如nodeName、nodeValue显示节点信息,方法如getElementsByTagName、appendChild、removeChild执行操作。例如,x.nodeName返回节点名称,x.appendChild(node)添加子节点。
|
2月前
|
XML 前端开发 Java
讲解SSM的xml文件
本文详细介绍了SSM框架中的xml配置文件,包括springMVC.xml和applicationContext.xml,涉及组件扫描、数据源配置、事务管理、MyBatis集成以及Spring MVC的视图解析器配置。
60 1
|
18天前
|
Java Maven
maven项目的pom.xml文件常用标签使用介绍
第四届人文,智慧教育与服务管理国际学术会议(HWESM 2025) 2025 4th International Conference on Humanities, Wisdom Education and Service Management
73 8
|
2月前
|
XML JavaScript Java
java与XML文件的读写
java与XML文件的读写
26 3