代码之家  ›  专栏  ›  技术社区  ›  Jonathan

在Haskell的XML管道中,如何创建节点?

  •  0
  • Jonathan  · 技术社区  · 6 年前

    我是哈斯克尔初学者。我在用 xml-conduit 要将一些XML转换为HTML, as seen in the Yesod tutorial . 我有一些属性和一些内容,我想使它们成为一个节点,以将其添加到现有的XML中。创建节点的最佳方法是什么?我试过打电话 Node 但它说它不在范围内。我可以使用 NodeContent "content" 或使用 NodeElement (Element ... ) ,但如何创建节点,提供 二者都 元素和内容?

    (Yesod书建议使用Hamlet,但我不想让Hamlet参与进来,因为我已经在使用Blaze,不想学习和维护太多的模板语言。)

    1 回复  |  直到 6 年前
        1
  •  3
  •   duplode    6 年前

    Node

    data Node
        = NodeElement Element
        | NodeInstruction Instruction
        | NodeContent Text
        | NodeComment Text
    

    Element

    data Element = Element
        { elementName       :: Name
        , elementAttributes :: Map.Map Name Text
        , elementNodes      :: [Node]
        }
    

    NodeContent

    NodeElement $ Element "b" empty [ NodeContent "Title" ]
    

    this example