zoukankan      html  css  js  c++  java
  • 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;
    
  • 相关阅读:
    feign的callback设定后,项目启动错误
    spring boot工程打成JAR包到服务器上运行
    jar包的启动和停止脚本
    tomcat启动时出现了Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
    maven的多环境配置
    oracle 按照时间间隔进行分组
    Oracle执行计划
    ajax传JSON时设置的contenttype导致JAVA中request.getParameter("")怎么也接收不到数据
    [转]动态代理
    [转]一文读懂《梁宁·产品思维30讲》最精华内容(含全套PPT)
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/3179246.html
Copyright © 2011-2022 走看看