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;

    正确。

  • 相关阅读:
    httpsqs消息队列
    Memcache 配置和使用
    nyist 68三点顺序
    nyist 67三角形面积
    rwkj 1363 正方形 长方形 三角形面积
    rwkj 1359 友元:两点距离
    rwkj 1357 矩形--面积-周长
    rwkj 1356 点与矩形
    rwkj 1354 圆周长与面积
    rwkj 1327 圆柱体体积
  • 原文地址:https://www.cnblogs.com/ITinfo/p/3890002.html
Copyright © 2011-2022 走看看