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.
Delphi 中的 XMLDocument 类详解(13) - 关于 XML 属性
原创
©著作权归作者所有:来自51CTO博客作者JLee79的原创作品,请联系作者获取转载授权,否则将追究法律责任
posted on 2008-01-03 21:37 万一 阅读(6216) 评论(0) 编辑 收藏
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
MybatisPlus基础Xml使用教程
MybatisPlus基础最全教程,里面包含操作的核心教程以及重点难点,很适合新手以及中高级开发学习
mybatis mybatisplus springboot -
Delphi实现http发送xml文件片段
默认有Idhttp组件,名称叫IdHttp1。服务端收到的汉字不是乱码。
delphi Post Xml