我需要处理一些XML文档。它们的结构相当复杂(即有许多节点),但处理只涉及更改少数节点的值并将文件保存为不同的名称。我正在寻找一种方法,在不必通过显式实例化所有类型和传递所有未更改的值的情况下来完成此操作,而是通过从输入中复制它们来完成。如果类型提供程序自动生成的类型是记录类型,那么我可以通过
let output = { input with changedNode = myNewValue }
来创建输出,但使用类型提供程序,我必须这样做:
let output = MyXml.MyRoot(input.UnchangedNode1, input.UnchangedNode2, myNewValue, input.UnchangedNode3, ...)
。我的更改值在一些嵌套节点中,这进一步增加了传递参数的复杂程度。