1
show
커서의 경로가 인간 친화적 인 형태로 표시 될 수 있습니까 (예 : root.element.childA
)?Text.XML.Cursor 위치를 얻는 방법?
show
커서의 경로가 인간 친화적 인 형태로 표시 될 수 있습니까 (예 : root.element.childA
)?Text.XML.Cursor 위치를 얻는 방법?
ancestor
은 현재 커서의 모든 조상 목록을 제공하는 Axis
입니다. 커서의 접근자인 node
을 사용하여 NodeElement
생성자에서 show
으로 문자열로 변환하고 intersperse
으로 편리한 점 표기법으로 모두 패킹하여 Node
및 패턴 일치를 다시 얻을 수 있습니다.
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 _ = ""
'Text.XML.Cursor.Generic'에 대한 의견을 통해 답변을 확장 할 수 있습니까? 귀하의 대답은 정확하지만 원래의 문제는'Text.XML.Cursor'를 해체하는 데있었습니다. – Rumca
오랜 시간이 걸려서 죄송합니다. 'Text.XML.Cursor.Generic '의 이유는'Text.XML.Cursor'에있는 대부분의 것들이이 패키지에서 단순히 재사용된다는 것입니다. 따라서'Text.XML.Cursor.Generic'은 내가 어디에 있었는지입니다. 작동하는 유형 및 기능을 추적 할 때 찾고 있습니다. 가져 오기 이름을'Text.XML.Cursor'로 변경하는 것은 기능상으로 동일하며 내 대답을 업데이트했습니다. – Thomas