• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
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.


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
MATLAB新手教程发布时间:2022-07-18
下一篇:
****-基于Simulink的FPGA代码自动生成技术-Matlab发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap