使用TXMLTransformProvider时控制XML节点的顺序

使用TXMLTransformProvider时控制XML节点的顺序,xml,delphi,tclientdataset,Xml,Delphi,Tclientdataset,我使用TXMLTransformProvider使用TClientDataSet编辑XML文件,这非常酷。我希望能够控制XML文件中节点的顺序——使用主键或类似键。但是,当我执行ClientDataSet1.ApplyUpdate时,新记录将添加到XML文件的末尾,而不是按照我喜欢的顺序(即在DBGrid中看到它们的顺序)。是否有一种简单的方法来保存我的订单,或者我必须放弃TXMLTransformProvider来保存数据,并使用TXMLDocument手动编码。我放弃了这一点,并使用TXML

我使用TXMLTransformProvider使用TClientDataSet编辑XML文件,这非常酷。我希望能够控制XML文件中节点的顺序——使用主键或类似键。但是,当我执行ClientDataSet1.ApplyUpdate时,新记录将添加到XML文件的末尾,而不是按照我喜欢的顺序(即在DBGrid中看到它们的顺序)。是否有一种简单的方法来保存我的订单,或者我必须放弃TXMLTransformProvider来保存数据,并使用TXMLDocument手动编码。

我放弃了这一点,并使用TXMLDocument从TClientDataSet手动输出xml,不是最漂亮的,但效果都一样。

我放弃了这一点,用TXMLDocument从TClientDataSet手动输出xml,不是最漂亮的,但效果都一样。

如果你仔细想想,这是正确的行为-总是附加新的数据库记录,我假设行为在这里不会改变。。这是值得vcl检查确认的,但我的直觉是,如果您的xml文件是一个数据库表,那么就应该处理这个问题。您不能只使用ClientDataSet的SaveToFile方法,并给它一个类似MyData.xml的文件名。如果您仔细想想,这是正确的行为-总是附加新的数据库记录,我假设这里的行为不会改变。。这是值得一些vcl检查来确认的,但我的直觉是,如果您的xml文件是一个数据库表,那么您就不能使用ClientDataSet的SaveToFile方法并为其指定一个类似MyData.xml的文件名。