1

我想从一个 txt 文件创建这个 xml 文件...

我做这个代码:

 FXml := TNativeXml.CreateName('Root');
 FXml.XmlFormat := xfReadable;
 open the file
 AssignFile(TFile,'user.txt');
 Reset(TFile);
 while not eof(TFile) do 
 begin
    Readln(TFile,text);
    r :=  Pos(' ',text);
    t2 := Trim(Copy(text,1,Length(text)));
    t1 := Trim(Copy(t2,0,r));
    FXml.Root.NodeNew('row');
    FXml.Root.NodeByName('row').WriteAttributeString('user',t2);
    FXml.Root.NodeByName('row').WriteAttributeString('pin',t1);
 end;
   FXml.SaveToFile('new.xml');
 FXml.free;

我对 nodebyname 做错了什么,但是……

谢谢...

4

1 回答 1

1

如果您的文本文件包含多行,则您将创建多个名为“row”的节点。NodeByName 将始终返回具有给定名称的第一个节点。

您应该将 NodeNew 的结果存储在 TXmlNode 类型的局部变量中,并使用该变量来设置属性。

var
  node: TXmlNode
...
node := FXml.Root.NodeNew('row');
node.WriteAttributeString('user',t2);
node.WriteAttributeString('pin',t1);
于 2012-10-04T07:36:39.130 回答