在增加xml节点时我用的方法是AppendChild,然后设置属性用的是setAttribute,能够增加上节点<node name="test" ipaddress="127.0.0.1" enabled="是"/>。但是在我修改时用replaceChild,再设置属性时得到的却是<node/>。也就是说修改后这个节点的属性没有了,请问大哥大姐们,这个问题该这么解决?

解决方案 »

  1.   

        function  replaceChild(const newChild: IXMLDOMNode; const oldChild: IXMLDOMNode): IXMLDOMNode; safecall;
    用一个新节点替换掉整个旧节点,如果替换整个node,那么它下面的属性,子节点都被替换掉了,// 修改属性
    var
      FNode: IXMLDONNode;
    begin
      FNode := ANode.createAttribute('name');
      FNode.nodeValue := 'Budded';
      Result.attributes.setNamedItem(FNode);
    end;
      

  2.   

    先克隆一下节点,对这个克隆的节点进行修改,然后用replaceChild方法替换不就行了?!
      

  3.   

    你修改以后AppendChild内容是空值。