加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi 7生成XML

发布时间:2020-12-15 09:56:26 所属栏目:大数据 来源:网络整理
导读:文件格式为: Day制1課U12ASSY01Wrist100902018/05/18 09:35:59Day制1課U12ASSY02Wrist101002018/05/18 09:36:01Day制1課U12ASSY03Wrist101102018/05/18 09:36:03Day制1課U12ASSY04Wrist101202018/05/18 09:36:05Day制1課U12ASSY05Wrist101302018/05/18 09:3

文件格式为:

Day	制1課	U12	ASSY01	Wrist	1009	0	2018/05/18 09:35:59
Day	制1課	U12	ASSY02	Wrist	1010	0	2018/05/18 09:36:01
Day	制1課	U12	ASSY03	Wrist	1011	0	2018/05/18 09:36:03
Day	制1課	U12	ASSY04	Wrist	1012	0	2018/05/18 09:36:05
Day	制1課	U12	ASSY05	Wrist	1013	0	2018/05/18 09:36:07
Day	制1課	U12	ASSY06	Wrist	1014	0	2018/05/18 09:36:10
Day	制1課	U12	ASSY07	Wrist	1015	0	2018/05/18 09:36:12
Day	制1課	U12	ASSY08	Wrist	1016	0	2018/05/18 09:36:14
Day	制1課	U12	ASSY09	Wrist	1017	0	2018/05/18 09:36:16

2.把此文件转成XML(用Delphi7):

procedure TForm1.Button1Click(Sender: TObject);
var
  lst,lstfield :TStringList;
  xml:TXMLDocument;
  node :IXMLNode;
  i,j:integer;
begin
  xml := TXMLDocument.Create(nil);
  try
    xml.Active := True;
    xml.Version := 1.0;
    xml.Encoding := UTF-8;
    xml.DocumentElement := xml.CreateElement(ESDDATA,ESD);
    xml.Options:=[doNodeAutoIndent];
    xml.NodeIndentStr :=#9;
    lstfield := TStringList.Create;
    try
      lst := TStringList.Create;
      try
        lst.LoadFromFile(ESDStatus.txt);
        Memo1.Text := lst.Text;
        for i:=0 to lst.Count-1 do
        begin
          lstfield.Clear;

          ExtractStrings([Char(VK_TAB)],[ ],PChar(lst[i]),lstfield) ;

          if lstfield.Count>0 then
          begin
             node := xml.DocumentElement.AddChild(item);
             {node.AddChild(‘SHIFT_NAME‘).Text :=lstfield[0];   --加子元素
             node.AddChild(‘PRODUCT_ROOM‘).Text :=lstfield[1];
             node.AddChild(‘PDLINE_NAME‘).Text :=lstfield[2];
             node.AddChild(‘POSITION‘).Text :=lstfield[3];
             node.AddChild(‘CATEGORY‘).Text :=lstfield[4];
             node.AddChild(‘NO‘).Text :=lstfield[5];
             node.AddChild(‘STATUS‘).Text :=lstfield[6];
             node.AddChild(‘PROCESSTIME‘).Text :=lstfield[7];}
             node.Attributes[SHIFT_NAME]:= lstfield[0];  //增加元素属性
             node.Attributes[PRODUCT_ROOM]:= lstfield[1];
             node.Attributes[PDLINE_NAME]:= lstfield[2];
             node.Attributes[POSITION]:= lstfield[3];
             node.Attributes[CATEGORY]:= lstfield[4];
             node.Attributes[NO]:= lstfield[5];
             node.Attributes[STATUS]:= lstfield[6];
             node.Attributes[PROCESSTIME]:= lstfield[7];
          end;
        end;
      finally
        lst.Free;
      end;
    finally
      lstfield.Free;
    end;
    Memo2.Lines.Text:= xml.XML.Text;
  finally
    node:=nil;
    xml.Active := false;
    xml.Free;
  end;

end;

3 生成子元素的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<ESDDATA xmlns="ESD">
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY01</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1009</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:35:59</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY02</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1010</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:01</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY03</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1011</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:03</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY04</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1012</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:05</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY05</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1013</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:07</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY06</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1014</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:10</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY07</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1015</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:12</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY08</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1016</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:14</PROCESSTIME>
    </item>
    <item>
        <SHIFT_NAME>Day</SHIFT_NAME>
        <PRODUCT_ROOM>鍒?瑾?/PRODUCT_ROOM>
        <PDLINE_NAME>U12</PDLINE_NAME>
        <POSITION>ASSY09</POSITION>
        <CATEGORY>Wrist</CATEGORY>
        <NO>1017</NO>
        <STATUS>0</STATUS>
        <PROCESSTIME>2018/05/18 09:36:16</PROCESSTIME>
    </item>
</ESDDATA>

?

4 生成元素属性内容为:

<?xml version="1.0" encoding="UTF-8"?>
<ESDDATA xmlns="ESD">
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY01" CATEGORY="Wrist" NO="1009" STATUS="0" PROCESSTIME="2018/05/18 09:35:59"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY02" CATEGORY="Wrist" NO="1010" STATUS="0" PROCESSTIME="2018/05/18 09:36:01"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY03" CATEGORY="Wrist" NO="1011" STATUS="0" PROCESSTIME="2018/05/18 09:36:03"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY04" CATEGORY="Wrist" NO="1012" STATUS="0" PROCESSTIME="2018/05/18 09:36:05"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY05" CATEGORY="Wrist" NO="1013" STATUS="0" PROCESSTIME="2018/05/18 09:36:07"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY06" CATEGORY="Wrist" NO="1014" STATUS="0" PROCESSTIME="2018/05/18 09:36:10"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY07" CATEGORY="Wrist" NO="1015" STATUS="0" PROCESSTIME="2018/05/18 09:36:12"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY08" CATEGORY="Wrist" NO="1016" STATUS="0" PROCESSTIME="2018/05/18 09:36:14"/>
    <item SHIFT_NAME="Day" PRODUCT_ROOM="鍒?瑾? PDLINE_NAME="U12" POSITION="ASSY09" CATEGORY="Wrist" NO="1017" STATUS="0" PROCESSTIME="2018/05/18 09:36:16"/>
</ESDDATA>

?

5:可以把以上的内容做为参数传给数据库进行处理,保证事物的原子性(具休调用待后续提供).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读