2013-10-29 3 views
2

최근에 구문 분석을 위해 HXT 피클 사용에 관해 게시했습니다. 약간의 독서 후 나는 규칙적인 HXT를 대신 사용하기로 결정했다.HXT 목록으로 구문 분석

그러나 목록을 만들 수 없습니다.

<meta> 
    <sampleQuery>sample1</sampleQuery> 
    <sampleQuery>sample2</sampleQuery> 
</meta> 

parseMeta = 
    proc x -> do 
    meta   <- deep (isElem >>> hasName "meta") -< x 
    sampleQueries <- getText <<< getChildren <<< deep (hasName "sampleQuery") -< meta 
    returnA -< Meta sampleQueries 
이 유형 [문자열]이 있어야

sampleQueries ([ "에는 sample1", "sample2를"이 경우)하지만 난 드릴 수 없습니다 구문 분석 기능 : 나는 XML 문서가 이것을 달성하십시오.

답변

2

화살표 기호는 과장된 것 같습니다.

import Text.XML.HXT.Core 

xml = unlines 
    [ "<meta>" 
    , "<sampleQuery>sample1</sampleQuery>" 
    , "<sampleQuery>sample2</sampleQuery>" 
    , "</meta>" 
    ] 

queries = hasName "meta" /> hasName "sampleQuery" /> getText 

main = runX (readString [] xml /> queries) >>= print 

예상대로 ["sample1","sample2"]이 인쇄됩니다.

관련 문제