我调用第三方函数获取到了一个byte数组,这个数组就是xml的内容
我需要修改这个XML的某个节点以后,再获取整个xml的字符串
  ByteXml: TByteDynArray ;
  .....//省略部分代码
  XMLDoc:=NewXMLDocument(WideString('1.0'));
  XMLDoc.LoadFromXML(String(ByteXml));
  XMLDoc.Active := True;  XMLDoc.DocumentElement.ChildNodes[0].ChildNodes[2].Text := 'aaaa';
  //之后,偶希望获取整个XMLDoc的内容,并转换成TByteDynArray数组
  //xmldoc.Active := false;        无论加不加这句,后面都报相同错误
  //showmessagebox(XMLDoc.XML);    直接报错,下面是错误内容
  //Project Project2.exe raised exception class EAccessViolation with message 'Access violation at address 7C92F0E2 in 
  //module 'ntdll.dll'. Read of address 00FC1000'
请大家指点,在线等待中……

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    begin
      XMLDocument1.LoadFromFile('c:\0097200705290909499.xml');
      Memo1.Lines.LoadFromFile('c:\0097200705290909499.xml');
      XMLDocument1.Active:=True;
      XMLDocument1.ChildNodes[1].ChildNodes[0].Text:='aa';
      Memo2.Lines.Text:=XMLDocument1.XML.Text
    end;
    显示xmldocument的内容应该是下面这句
    showmessagebox(XMLDoc.XML.Text)
      

  2.   

    经测试……这个帮偶获得了XML的文本,的确有效
    Memo2.Lines.Text:=XMLDocument1.XML.Text一会儿另外开一个帖子,关于中文编码转换的问题,希望高手能帮偶解答,谢谢!