我是Haskell的初学者。我正在使用xml-conduit将XML转换为HTML,as seen in the Yesod tutorial。我有一些属性和一些内容,希望将其添加到节点中以将其添加到现有XML中。创建节点的最佳方法是什么?我尝试调用matshow
,但它不在范围内。我可以使用Node
或NodeContent "content"
来创建节点,但是如何创建同时提供元素和内容的 节点?
(Yesod的书建议使用Hamlet,但我宁愿不参与Hamlet,因为我已经在使用Blaze,并且不想学习和维护太多的模板语言。)
答案 0 :(得分: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
包含Node
的列表,因此您可以使其包含NodeContent
:
NodeElement $ Element "b" empty [ NodeContent "Title" ]
(参见链接教程中的this example。)