我要疯狂地尝试使用简单的>>.和>.函数来定义这里。
我想得到的长度,所有的,这是HXT中一个节点的文本。我用这个:
runX (doc //> hasName "div" //> text >>. unlines)doc是我的XmlTree箭。
这让我得到了所有div的所有文本(包括他们拥有的任何孩子中的文本)。它以字符串的形式获取文本,因为我使用的是unlines。现在我想得到字符串的长度,所以我尝试:
runX (doc //> hasName "div" //> text >>. unlines >. length)HXT似乎神奇地将我的字符串转换回数组,因为我得到了以下信息:
[0,17,0,20,0,11,...]我想要的是所有那些Int的总结。我该怎么做?
更新
文本函数的定义如下:
text = deep (getChildren >>> getText)我发现,如果我跳过getChildren位,这是正确的:
text = deep getText只要我只有一个div元素。如果我有多个div元素,则返回一个数组,其中包含每个元素的长度。
发布于 2012-04-16 07:12:08
考虑下面的两个例子:
Prelude Text.XML.HXT.Core> flip runLA undefined $ (constL [1, 2] >>> arr id) >>. take 1
[1]
Prelude Text.XML.HXT.Core> flip runLA undefined $ constL [1, 2] >>> (arr id >>. take 1)
[1,2]不同之处只在括号内。没有括号,它将作为第二个示例。所以你有问题,因为不同的固定物。
https://stackoverflow.com/questions/10159740
复制相似问题