在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
使用delphi的XML处理单元 XMLDoc XMLIntf 在获取XML文本内容的时候, 高版本的Delphi会丢失编码描述....在D7上却是正常的, 下面是测试源码: procedure TForm1.Button1Click(Sender: TObject); var nXMLDoc: IXMLDocument; i: Integer; nMS: TMemoryStream; nSS: TStringStream; nStr: string; begin nXMLDoc := TXMLDocument.Create(nil); nXMLDoc.Active := True; nXMLDoc.Encoding := 'GB2312'; nXMLDoc.AddChild('test'); for i := 0 to 4 do nXMLDoc.DocumentElement.AddChild('测试').NodeValue := i; with Memo1 do begin Lines.Clear; Lines.Add('---- nXMLDoc.XML.Text ----'); Lines.Add(''); Lines.Add(nXMLDoc.XML.Text); end; nMS := TMemoryStream.Create; nXMLDoc.SaveToStream(nms); nms.Position := 0; with Memo2 do begin Lines.Clear; Lines.LoadFromStream(nms); Lines.Insert(0, ''); Lines.Insert(0, '---- nXMLDoc.SaveToStream ----'); end; nMS.Free; nXMLDoc.SaveToXML(nStr); with Memo3 do begin Lines.Clear; Lines.Add('---- nXMLDoc.SaveToXML ----'); Lines.Add(''); Lines.Add(nStr); end; end; 下面是同样的代码分别在Delphi7 和Delphi2010的执行效果 对比可以发现, XML.Text和SaveToXML这2个方法, 在2010上, 输入以后 encoding="GB2312" 的编码信息会丢失 使用XE5的版本测试也一样会丢失, 只有在D7上是正常的 Delphi7结果 Delph2010结果 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论