使用类型提供程序如何编辑XML文件?

6

我知道如何使用类型提供程序从XML源中检索数据。但是,我需要修改XML的特定部分并将其保存到磁盘。我尝试使用<-为节点赋值,但该属性是只读的。

例如:

let doc = MyXml.load fileName
doc.ItemId.Id <- "newId" // doesn't work
doc |> saveXml

有一个关于JSON的类似问题,建议是创建一个新对象,但这个问题是针对XML的。

1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
6

在研究我的问题时,我发现可以使用.XElement访问器来获取对可变的XElement对象的引用。因此,解决方案是:

let doc = MyXml.load fileName
doc.ItemId.XElement.Element(XName.Get "Id").Value <- "newId" // tada
doc.XDocument.Save(...)
请注意,如果要修改叶子节点,则必须在父级上使用.XElement访问器。这是因为叶子节点的类型是基元类型,没有自己的.XElement访问器。有点可惜,但我想当你想要只读访问值时,这会让生活变得更加简单。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,