zoukankan      html  css  js  c++  java
  • delphi IXMLDocument 解析xml 异常。

    最近在用delphi解析xml,使用的是UTF-16编码,含中文。

    做例子测试:

    Form包含一个Button,两个Memo。

    procedure TForm1.Button1Click(Sender: TObject);
    var
    xmldocument1:IXMLDocument;
    xmlstr:string;
    begin
    xmlstr:=memo1.Lines.text;
    xmldocument1:=TXMLDocument.Create(nil);
    xmldocument1.loadfromxml(xmlstr);
    memo2.Lines.text := xmldocument1.XML.text;
    end;

     点击转换按钮,弹出

    UTF-8,GBK,GB2312均可以,utf-16错误,查看IXMLDocument帮助文档,说支持UTF-16。

    修改代码

    procedure TForm1.Button1Click(Sender: TObject);
    var
    xmldocument1:IXMLDocument;
    xmlstr:widestring;
    begin
    xmlstr:=memo1.Lines.text;
    xmldocument1:=TXMLDocument.Create(nil);
    xmldocument1.loadfromxml(xmlstr);
    memo2.Lines.text := xmldocument1.XML.text;
    end;

    点击转换按钮:

    不报错,可以识别UTF-16,但转换后自动变为UTF-8,即使添加xmldocument1.encoding:='UTF-16';不起作用。

    但中午乱码,输出到文件中中文不乱码。

    修改代码:

    procedure TForm1.Button1Click(Sender: TObject);
    var
    xmldocument1:IXMLDocument;
    xmlstr:widestring;
    begin
    xmlstr:=memo1.Lines.text;
    xmldocument1:=TXMLDocument.Create(nil);
    xmldocument1.loadfromxml(xmlstr);
    memo2.Lines.text := xmldocument1.node.XML;
    end;

    正确。

  • 相关阅读:
    Saltstack module gem 详解
    Saltstack module freezer 详解
    Saltstack module firewalld 详解
    Saltstack module file 详解
    Saltstack module event 详解
    Saltstack module etcd 详解
    Saltstack module environ 详解
    Saltstack module drbd 详解
    Saltstack module dnsutil 详解
    获取主页_剥离百度
  • 原文地址:https://www.cnblogs.com/ITinfo/p/3890002.html
Copyright © 2011-2022 走看看