微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

一个similar question for JSON,其中建议是创建一个新对象,但这是专门针对XML的.

解决方法

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

let doc = MyXml.load fileName
doc.ItemId.XElement.Element(XName.Get "Id").Value <- "newId" // tada
doc.XDocument.Save(...)

请注意,如果要修改叶节点,则必须在父级上使用.XElement访问器.这是因为叶节点的类型是基元,并且没有自己的.XElement访问器.有点羞耻,但我想当你想要只读访问价值时,它会使另一方的生活更轻松.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。