在 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。)
我是 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。)