代码之家  ›  专栏  ›  技术社区  ›  Mason Wheeler

TClientDataset-XML映射

  •  1
  • Mason Wheeler  · 技术社区  · 16 年前

    我试图将TClientDataSet中的数据保存到XML文件中,但它不喜欢我的某些字段。helpfile使用以下两种方法之一创建定义:使用xmlmapper.exe“我的\bin文件夹”中的文件或具有IDOMDocument接口的文件。

    有人知道我在这种情况下该怎么办吗?

    5 回复  |  直到 12 年前
        1
  •  3
  •   bluish dmajkic    12 年前

    如果使用的字段在delphi的XML序列化中不受支持,则需要创建自己的函数来加载/保存XML。

    这并不难,如果你这么做了,代码可以扩展为其他序列化格式(JSON,CSV,XLSX,…)。

        2
  •  0
  •   Jim McKeeth    16 年前

    XMLMapper.exe 在我的\bin目录中,它也在我的工具菜单下(尽管我可能已经在那里添加了它…)你们有什么版本的Delphi?我看了看 feature matrix . 您可以再次运行安装,看看是否跳过了安装。

        3
  •  0
  •   Gordon Haim Evgi    13 年前
        4
  •  0
  •   mjn anonym    13 年前

    第三种选择是使用OmniXML或NativeXml这样的XML库,简单地迭代所有记录,并使用自己编写的代码将字段写入XML。

        5
  •  -1
  •   bluish dmajkic    12 年前

    宣言:

    void __fastcall SaveToFile(const System::UnicodeString FileName = System::UnicodeString(), TDataPacketFormat Format = (TDataPacketFormat)(0x0));
    Mem1->SaveToFile("C:\wateverfile.xml",dfXMLUTF8);
    

    Mem1->SaveToFile("C:\wateverfile.xml",dfXML); 
    

    Mem1->SaveToFile("C:\wateverfile.cds",dfBinary); //for a binary save
    
    • dfBinary
    • dfXML :信息用XML编码,扩展字符用转义序列编码。
    • dfXMLUTF8