var
  doc :IXMLDOMDocument; 
  aa:IXMLDOMNode;
  node1:IXMLDOMNodeList; 
begin
  doc.load('a.xml');
  node1 := doc.documentElement.selectNodes('//Peple[@gendel="male"]');
  aa := node1.nextNode.firstChild;
repeat
  aa := aa.nextSibling;
  if aa.text='abc' then dosomething();
until aa = node1.nextnode.lastchild;
目的是要遍历节点下的所有子节点找到值是'abc'的,但是总会在最后一句的时候出错,不知道为什么..
请教。
或者有什么别的遍历方法???

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      IDOM: IXMLDOMDocument;
      FList: IXMLDOMNodeList;
      FNode: IXMLDOMNode;
    begin
      IDOM := CoDOMDocument.Create;
      if IDOM.loadXML(Memo1.Text) then
      begin
        FList := IDOM.selectNodes('//Peple[@gendel="male"]');
        FNode := FList.nextNode;
        while Assigned(FNode) do
        begin
          ...
          FNode := FList.nextNode;
        end;
      end;
    end;