• TXMLDocument use case (Delphi)


    Description

    This example illustrates the basic operations on an XML document.

    Code

    procedure CreateDocument;
    const
      CFilename = 'file.xml';
    var
      LDocument: IXMLDocument;
      LNodeElement, NodeCData, NodeText: IXMLNode;
    begin
      LDocument := TXMLDocument.Create(nil);
      LDocument.Active := True;
     
      { Define document content. }
      LDocument.DocumentElement := LDocument.CreateNode('ThisIsTheDocumentElement', ntElement, '');
      LDocument.DocumentElement.Attributes['attrName'] := 'attrValue';
      LNodeElement := LDocument.DocumentElement.AddChild('ThisElementHasText', -1);
      LNodeElement.Text := 'Inner text.';
      NodeCData := LDocument.CreateNode('any characters here', ntCData, '');
      LDocument.DocumentElement.ChildNodes.Add(NodeCData);
      NodeText := LDocument.CreateNode('This is a text node.', ntText, '');
      LDocument.DocumentElement.ChildNodes.Add(NodeText);
     
      LDocument.SaveToFile(CFilename);
    end;
     
    procedure RetrieveDocument;
    const
      CFilename = 'file.xml';
      CAttrName = 'attrName';
      HTAB = #9;
    var
      LDocument: IXMLDocument;
      LNodeElement, LNode: IXMLNode;
      LAttrValue: string;
      I: Integer;
    begin
      LDocument := TXMLDocument.Create(nil);
      LDocument.LoadFromFile(CFilename);
     
      { Find a specific node }
      LNodeElement := LDocument.ChildNodes.FindNode('ThisIsTheDocumentElement');
     
      if (LNodeElement <> nil) then
      begin
        { Get a specific attribute }
        Writeln('Getting attribute...');
        if (LNodeElement.HasAttribute(CAttrName)) then
        begin
          LAttrValue := LNodeElement.Attributes[CAttrName];
          Writeln('Attribute value: ' + LAttrValue);
        end;
     
        { Traverse child nodes }
        Writeln(sLineBreak, 'Traversing child nodes...' + sLineBreak);
        for I := 0 to LNodeElement.ChildNodes.Count - 1 do
        begin
          LNode := LNodeElement.ChildNodes.Get(I);
          { Display node name }
          Writeln(sLineBreak + 'Node name: ' + LNode.NodeName);
          { Check if the node type is Text. }
          if LNode.NodeType = ntText then
          begin
            Writeln(HTAB + 'This is a node of type Text. The text is: ' + LNode.Text);
          end;
          { Check if the node is text element. }
          if LNode.IsTextElement then
          begin
            Writeln(HTAB + 'This is a text element. The text is: ' + LNode.Text);
          end;
        end;
      end;
    end;
    
  • 相关阅读:
    关于web开发的一点理解
    如何通过Request.ServerVariables["HTTP_USER_AGENT"]获取客户端操作系统信息
    将图片转换为Base64
    asp.net 图片质量压缩(不改变尺寸)
    下载网路图片并保存在硬盘
    HTTP Content-type 对照表
    mssql 查询全部用户创建表 条数及占用空间大小(KB)
    幸运抽奖数据结构
    非UI线程和UI线程通信
    爬取淘宝“手机信息”
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3179246.html
Copyright © 2020-2023  润新知