我如何以人类友好的形式show
给出光标的路径(例如root.element.childA
)?
答案 0 :(得分:1)
ancestor
是Axis
,它为您提供当前光标的所有祖先列表。
使用游标的node
访问器,我们可以在Node
构造函数上返回NodeElement
和模式匹配,转换为包含show
的字符串,并将其打包用intersperse
方便的点符号表示。
import Data.List (intersperse)
import Text.XML (Node(elementName))
import Text.XML.Cursor (Cursor(node), ancestor)
prettyCursor :: Cursor node -> String
prettyCursor = intersperse "." . filter (not.null) . map (elemname.node) . ancestor
where
elemname (NodeElement Element{ elementName = e }) = show e
elemname _ = ""