我要瘋了試圖使用簡單的>>.
和>.
函數定義here。在HXT中使用列表
我想獲得長度爲全部 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函數的定義如下:
text = deep (getChildren >>> getText)
我想通了,如果我跳過getChildren
位,這正常工作:
text = deep getText
由於只要我只有一個div
元素。如果我有多個div
元素,我會返回一個數組,其長度爲每個元素。
我對HXT一點都不熟悉,但只會做'... >>。長度 。 unlines'工作?或者也許'...... >>。 (length。unlines)',這取決於運算符的優先級。 – 2012-04-15 05:19:58
不是。 ''。''''''''期待一個列表作爲結果,所以我會把你的建議寫成:'runX(doc //> hasName「div」//> text >>。(\ x - > [length。unlines $ x] ))'。因此,我得到了'[0,17,0,20,0,11,...]'結果。 – 2012-04-15 05:47:39
爲什麼不只是'sum $ runX ...'? – 2012-04-15 21:34:32