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

问题描述 投票:0回答:1

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

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

xml haskell yesod xml-conduit
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]
    }

请注意,Element持有Nodes列表,因此您可以使其保持NodeContent

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

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

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.