我用DBGrid1,DataSource1,ClientDataSet1,XMLTransformProvider1
的结构,使上面的各个控件依次以后面的控件提供数据,并在XMLTransformProvider1中指定了一个xml文件以及TransformationFile(.xtr文件),
包括TransformRead 和TransformWrite,
即以xml文件(input.xml)提供数据来构建了一个数据库应用程序。
DBGrid正常显示了数据,然后我对其中的数据进行了修改(如18改成23),
然后对ClientDataSet1调用了ApplyUpdates(-1),试图将改变写入xml文档中去,
结果发现xml文档中的数据全消失了,但是所有的根子节点名称还存在。
我的.xtr文件应该没有出错,但是问题到底出在哪儿呢?你们碰到过这种情况吗?
谢谢!

解决方案 »

  1.   

    哇,不会吧,太草率了吧?
    后来我反复试验,终于发现是字符集的问题!
    我在xml中用的是中文(节点名和内容都是中文),改成英文就行了
    但是有出了一个问题:我必须使用中文。于是,我在用xmlmapper转换的时候,
    全部指定为中文集GB2312,但是还是不行!一ApplyUpdates就又变空白了。
    哪位大哥知道如何转换字符集啊?!
      

  2.   

    做个记号,可以使用unicode型的吗?
    有意思,研究一下。
      

  3.   

    你的xml文件是怎么建的?
    我怎么老提示系统未找到指定资源啊!
    初次使用,请多关照:)
      

  4.   

    我终于搞懂了,原来是用xmlmapper做TransformationFile(.xtr文件)的时候,
    需要为中文节点名指定转换后的英文名(而缺省的是相同的中文名),这样计算机
    才可以识别。
    系统怎么会找不到资源呢?恐怕是你的xml文件没做好吧。这样的格式:
    <?xml version="1.0" encoding="GB2312"?>
    <表单明细>
    <货物>
    <存货编码>555</存货编码>
    <存货名称>宝马</存货名称>
    <交货日期>2000-08-20</交货日期>
    </货物>
    </表单明细>