有什么控件或函数可以实现该功能吗?
例如:第一个XML文件
<svg width=100 height=100>
  <defs>  </defs>
</svg>另一个XML文件:
<symbol id="symbol1">
  <g>
    <hello name="yyy" />
  </g>
</symbol>如何将下一个XML中的<symbol>节点的所有内容插入到第一个XML文件的<defs>节点中?

解决方案 »

  1.   

    用selectSingleNode(svg) 和selectSingleNode(symbol) 找到两个节点
    第一个节点的appendChild方法加入第二个节点
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      NodeSelect1, NodeSelect2: IDOMNodeSelect;
      NodeList1, NodeList2: IDOMNodeList;
      iNode1, iNode2: IDOMNode;
      PathStr1, PathStr2: String;
    begin
      XMLDocument1.FileName := ExtractFilePath(Application.ExeName)+'myXML1.xml';
      XMLDocument1.Active := true;
      PathStr1 := '/svg/defs';
      NodeSelect1 := XMLDocument1.DOMDocument as IDOMNodeSelect;
      NodeList1 := NodeSelect1.selectNodes(PathStr1);
      iNode1 := NodeList1.item[0];  XMLDocument2.FileName := ExtractFilePath(Application.ExeName)+'myXML2.xml';
      XMLDocument2.Active := true;
      PathStr2 := '/symbol';
      NodeSelect2 := XMLDocument2.DOMDocument as IDOMNodeSelect;
      NodeList2 := NodeSelect2.selectNodes(PathStr2);
      iNode2 := NodeList2.item[0];  iNode1.appendChild(iNode2);
      XMLDocument1.Active := true;
      Memo1.Lines := XMLDocument1.XML; //看結果
    end;(注:用2個TXMLDocument控件分別装XML文件
      myXML1.xml + myXML2.xml -> myXML1.xml )