다음과 같이 혼합 내용 노드 (본문 텍스트와 자식 노드가 모두 있음)를 사용하여 XML을 생성하려고합니다.xmlgen : Haskell에서 혼합 내용 XML 노드 생성 (본문 텍스트와 중첩 된 XML 요소 모두 사용)
<person>
some text
<hugo age="24">thingy</hugo>
</person>
나는 xmlgen 라이브러리를 사용 중입니다. 여기
내가 가지고 얼마나 멀리입니다 :
import Text.XML.Generator
import qualified Data.ByteString as B
makeElt = xelem "person" $
xelems $ (xtext "some text" :
(xelem "hugo" (xattr "age" "24" <#>
xtext "thingy")))
main = do
let elt = makeElt
B.putStr . xrender $ doc defaultDocInfo elt
이 컴파일되지 않고 GHC의 오류 메시지 (초보자로) 나에게 이해할 수 :
$ runhaskell test.hs
test.hs:6:24:
Couldn't match type `Elem' with `Xml Elem'
The function `xelem' is applied to two arguments,
but its type `[Char]
-> Text.XML.Generator.MkElemRes [Char] (Xml Attr, Xml Elem)'
has only one
In the second argument of `(:)', namely
`(xelem "hugo" (xattr "age" "24" <#> xtext "thingy"))'
In the second argument of `($)', namely
`(xtext "some text"
: (xelem "hugo" (xattr "age" "24" <#> xtext "thingy")))'
test.hs:6:24:
Couldn't match type `Xml' with `[]'
The function `xelem' is applied to two arguments,
but its type `[Char]
-> Text.XML.Generator.MkElemRes [Char] (Xml Attr, Xml Elem)'
has only one
In the second argument of `(:)', namely
`(xelem "hugo" (xattr "age" "24" <#> xtext "thingy"))'
In the second argument of `($)', namely
`(xtext "some text"
: (xelem "hugo" (xattr "age" "24" <#> xtext "thingy")))'
이 결과에 나는 매우 가까운임을 나는 이것을 필요로 하는가, 아니면 내가 이것을 다르게 쓰어야 하는가?
xmlgen 라이브러리의 사용 예를 찾으려고했지만 사용 사례를 찾지 못했습니다. 어떤 도움이라도 대단히 감사합니다.