【问题标题】:How do I edit an XML file using type providers?如何使用类型提供程序编辑 XML 文件?
【发布时间】:2014-09-10 14:35:35
【问题描述】:

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

例如:

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

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

【问题讨论】:

    标签: f# type-providers


    【解决方案1】:

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

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

    请注意,如果要修改叶节点,则必须在 父节点 上使用 .XElement 访问器。这是因为叶节点的类型是原始类型,并且没有自己的 .XElement 访问器。有点遗憾,但我想当您想要只读访问该值时,它会让另一边的生活更轻松。

    【讨论】:

      猜你喜欢
      • 2014-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-19
      相关资源
      最近更新 更多