zoukankan      html  css  js  c++  java
  • NativeXml (9):读取


    var xml: TNativeXml; 
     
    const 
      xmlStr = '<?xml version="1.0" encoding="UTF-8"?>' + 
               '<List>' + 
               '<item ID="No.1" age="11">张三</item>' + 
               '<item ID="No.2" age="22">李四</item>' + 
               '<item ID="No.3" age="33">王五</item>' + 
               '</List>'; 
     
    procedure TForm1.FormCreate(Sender: TObject); 
    begin 
      xml := TNativeXml.Create(Self); 
      xml.XmlFormat := xfReadable; 
      xml.ReadFromString(xmlStr);     {!} 
      Memo1.Text := xml.WriteToString; 
    end; 
     
    {RootNodes} 
    procedure TForm1.Button1Click(Sender: TObject); 
    var 
      declaration: TsdDeclaration; 
      root: TXmlNode; 
    begin 
      ShowMessageFmt('%s, %s', [xml.VersionString, xml.EncodingString]);      //1.0, UTF-8 
      declaration := xml.RootNodes[0] as TsdDeclaration; 
      ShowMessageFmt('%s, %s', [declaration.Version, declaration.Encoding]);  //1.0, UTF-8 
     
      ShowMessageFmt('%s, %d', [xml.Root.Name, xml.Root.NodeCount]); //List, 3 
      root := xml.RootNodes[1]; 
      ShowMessageFmt('%s, %d', [root.Name, root.NodeCount]);         //List, 3 
    end; 
     
    procedure TForm1.Button2Click(Sender: TObject); 
    var 
      node: TXmlNode; 
    begin 
      node := xml.Root; 
      ShowMessage(node.WriteToString); 
    end; 
    {*************************************** 
    <List> 
    	<item ID="No.1" age="11">张三</item> 
    	<item ID="No.2" age="22">李四</item> 
    	<item ID="No.3" age="33">王五</item> 
    </List> 
    *****************************************} 
     
    procedure TForm1.Button3Click(Sender: TObject); 
    var 
      node: TXmlNode; 
    begin 
      node := xml.Root[0]; 
      ShowMessage(node.WriteToString); 
    end; 
    {*************************************** 
    <item ID="No.1" age="11">张三</item> 
    *****************************************} 
     
    procedure TForm1.Button4Click(Sender: TObject); 
    var 
      node: TXmlNode; 
    begin 
      node := xml.Root[0]; 
      ShowMessage(node.Name);  //Item 
      ShowMessage(node.Value); //张三 
      ShowMessage(node.Attributes[0].Name);  //ID 
      ShowMessage(node.Attributes[0].Value); //No.1 
      ShowMessage(node.Attributes[0].WriteToString); //ID="No.1" 
    end; 
     
    procedure TForm1.Button5Click(Sender: TObject); 
    var 
      node: TXmlNode; 
    begin 
      node := xml.Root[0]; 
      ShowMessage(node.AttributeByName['ID'].Value); //No.1 
      ShowMessage(node.AttributeValueByName['ID']);  //No.1 
    end; 
     
    procedure TForm1.Button6Click(Sender: TObject); 
    var 
      nodeList: TsdNodeList; 
      node: TXmlNode; 
      i: Integer; 
    begin 
      node := xml.Root; 
      ShowMessage(node.ReadString('item'));       //张三 
      ShowMessage(node.FindNode('item').Value);   //张三 
      ShowMessage(node.NodeByName('item').Value); //张三 
      //node.NodesByName(); 用法同 FindNodes 
     
      nodeList := TsdNodeList.Create(False); 
      node.FindNodes('item', nodeList); 
      for i := 0 to nodeList.Count - 1 do 
      begin 
        ShowMessage(nodeList[i].Value); //张三/李四/王五 
      end; 
      nodeList.Free; 
      // 
      for i := 0 to node.NodeCount - 1 do 
      begin 
        ShowMessage(node[i].Value);     //张三/李四/王五 
      end; 
    end; 
     
    procedure TForm1.Button7Click(Sender: TObject); 
    var 
      node: TXmlNode; 
    begin 
      node := xml.Root[0]; 
      ShowMessage(node.Parent.Name);             //List 
      ShowMessage(node.Document.EncodingString); //UTF-8 
    end; 
     
    {StringTable} 
    procedure TForm1.Button8Click(Sender: TObject); 
    const 
      path = 'c:\temp\test.txt'; 
    begin 
      xml.StringTable.SaveToFile(path); 
      Memo1.Lines.LoadFromFile(path, TEncoding.UTF8); 
    end; 
    {*************************************** 
    22	1 
    33	1 
    11	1 
    age	3 
    ID	3 
    UTF-8	1 
    List	1 
    1.0	1 
    No.2	1 
    item	1 
    No.1	1 
    No.3	1 
    张三	1 
    item	2 
    王五	1 
    李四	1 
    encoding	1 
    version	1 
    *****************************************}
    

  • 相关阅读:
    qs.js库 使用方法
    Python的装饰器
    Html常用标记总结
    SoapUI、Jmeter、Postman三种接口测试工具的比较
    WebService发布协议--SOAP和REST的区别
    Redis简介
    linux搭建svn服务并手动同步代码到web目录和自动更新
    标签有关用法以及锚点定位;
    DevOps简单介绍
    BAT 批处理脚本教程
  • 原文地址:https://www.cnblogs.com/del/p/1995661.html
Copyright © 2011-2022 走看看