0

我是 Haskell 初学者。我正在使用xml-conduit将一些 XML 转换为 HTML,如 Yesod 教程中所见。我有一些属性和一些内容,我想将它们制作成一个节点,以将其添加到现有的 XML 中。创建节点的最佳方法是什么?我试过打电话Node,但它说它不在范围内。我可以使用NodeContent "content"或 usingNodeElement (Element ... )创建节点,但如何创建节点,同时提供元素和内容?

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

4

1 回答 1

3

这是Node...的构造函数和字段

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

...和Element

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

请注意,anElement包含Nodes 的列表,因此您可以使其包含 a NodeContent

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

(参见链接教程中的这个例子。)

于 2018-09-04T03:08:06.697 回答