zoukankan      html  css  js  c++  java
  • 黄聪: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/del/archive/2008/01/03/1025080.html

  • 相关阅读:
    cocos2dx-lua捕获用户touch事件的几种方式
    Java并发编程之闭锁CountDownLatch简单介绍
    opencv视频播放
    完全备份、差异备份以及增量备份的区别
    如何实现文件增量同步——算法
    Oracle提示“资源正忙,需指定nowait”的解决方案
    oracle之报错:ORA-00054: 资源正忙,要求指定 NOWAIT
    一次oracle大量数据删除经历
    rownum的使用-分页
    sql语句分页多种方式ROW_NUMBER()OVER
  • 原文地址:https://www.cnblogs.com/huangcong/p/1809947.html
Copyright © 2011-2022 走看看