我现在要做的事是在TreeView里面选中一个节点进行新建,这个是成功的,但是要同时XML文件里的对应的那个节点下也新建一个节点,貌似没有成功啊,每次都是在XML的根节点下新建了一个节点,经过调试后我发现树的所选节点没有传递到我定义的FindNodePath函数里面去,后面的当然也没法有数据了,先附一下我的代码吧,不长,但看着可能有点费力,但问题应该不是在我的函数里面//==============================================================================
// 新建节点
//==============================================================================
procedure TForm1.newBtnClick(Sender: TObject);
var
  rNode,tmpNode,newNode: IXMLNode;
  nowTreeNode: TTreeNode ;
  nowNodePath: TStringList;
  cNode,pNode,nNode:TTreeNode ;
  i:Integer;
  xmlToTree:TXmlToTree;
  newname:string;
  flag : Boolean;
begin
  newname := InputBox('提示','请输入文件名:','newname');
  flag := True ;
  if TreeView1.Selected.HasChildren then
  begin
  cNode := TreeView1.Selected.getFirstChild;
  for i:=1 to TreeView1.Selected.Count-1 do
  begin
  cNode := cNode.getNextSibling;
  if cNode.Text = newname then
  begin
  ShowMessage('已经有一个此名字的文件!');
  flag := False ;
  Break;
  end;
  end;
  end;
  if flag then
  TreeView1.Items.AddChild(TreeView1.Selected , newname);  xmlToTree:= TXmlToTree.Create ;
  nowTreeNode:= TreeView1.Selected;//此句执行后nowTreeNode为什么是空的? nowNodePath := xmlToTree.findNodePath(nowTreeNode);
  rNode := XMLDocument1.DocumentElement;
  tmpNode := xmlToTree.findNode(nowNodePath,rNode);
  newNode := tmpNode.AddChild('DIR');
  newNode.Attributes['Label'] := newname;  XMLDocument1.SaveToFile('e:\xiaowei\mytest.xml');
end;