Delphi 7生成XML

文件格式为:

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

猜你喜欢

转载自www.cnblogs.com/yagzh2000/p/9055597.html
今日推荐