3

试图使用这里>>.定义的简单和>.函数我快疯了。

我想获取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元素,我会返回一个包含每个元素长度的数组。

4

1 回答 1

2

考虑接下来的两个例子:

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]

区别仅在括号中。如果没有括号,它将作为第二个示例工作。所以你有不同的问题。

于 2012-04-16T07:12:08.027 回答