在 Haskell 的 xml-conduit 中,如何创建节点?

In Haskell's xml-conduit, how can I create a node?

我是 Haskell 初学者。我正在使用 xml-conduit to transform some XML into HTML, as seen in the Yesod tutorial。我有一些属性和一些内容,我想制作成一个节点以将其添加到现有 XML。创建节点的最佳方法是什么?我试过调用 Node,但它说它不在范围内。我可以使用 NodeContent "content"NodeElement (Element ... ) 创建一个节点,但是如何创建一个节点,同时提供 元素和内容?

(Yesod 书建议使用 Hamlet,但我宁愿不涉及 Hamlet,因为我已经在使用 Blaze,并且不想学习和维护太多模板语言。)

以下是 Node...

的构造函数和字段
data Node
    = NodeElement Element
    | NodeInstruction Instruction
    | NodeContent Text
    | NodeComment Text

... 和 Element:

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

请注意,Element 包含 Node 的列表,因此您可以使其包含 NodeContent:

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

(参见链接教程中的 this example。)