HXTに問題がありますが、矢印については何かが足りないのではないかと思います。
私は次のようなXML構造を持っています
<str name="field1">value</str>
<lst name="field2"><str>value2</str><str>value3</str></lst>
そして内部構造のような
data XmlData = XmlStr String | XmlList XmlData
矢印のステップで要素を収集する方法はありますか?
getXmlData :: IOSArrow XmlTree (String, XmlData)
getXmlData = (getAttrl >>> getChildren >>> getText) &&&
((filterByType "str" >>> getText >>> arr (\x -> XmlStr x))
<+> (filterByType "lst" >>> getXmlData))
where filterByType t = isElem >>> hasName t >>> getChildren
getXmlDataの再帰呼び出しでは、回答を収集してXmlListコンストラクターでラップする必要がありますが、用語を収集する方法がわかりません。現在、私は出力のいくつかの後処理(同じ名前で収集)でこれを達成していますが、より良い解決策が欲しいです。