그것은 가능한 구문 분석하여 암호화된 데이타는 고유 파일 시스템 <textarea> 와 <a> 에서 그것은?
문제
내가 사용하는 암호화된 데이타는 고유 파일 시스템을 분석하 어떤 html.그것은 토지 이스케이프 내부 html <textarea>
.암호화된 데이타는 고유 파일 시스템을 제공합 잘못된 결과를(그것을 마련 태그와 콘텐츠를 이 경우에는 그것의 <a>
).최소한의 테스트 사례(예 GHCi)가
let doc = parseHtml "<textarea>before<a>link</a>after</textarea>"
runX . xshow $ doc //> hasName "textarea"
제공하는 [<textarea>before</textarea><textarea/>]
로 결과입니다.
그것처럼 보이는 태그는 컨텐츠 없(예: <tag/>
)하지 않는 휴식 구축하고 있음을 보여준다
하는 방법은 없을 분석 같은 html 을 암호화된 데이타는 고유 파일 시스템?
해결책
문제는 HandsomeSoup (나는 가정은 어디에 당신 parseHTML
에서입니다)까다로운 것에 관하여 사실 textarea
포함할 수 없습 a
에서 유효한 HTML,고 시도하"수정"이러한 오류는 그것을 본다.
으로 전환할 수 있습니 암호화된 데이타는 고유 파일 시스템 tagsoup?그것은 여전히 받아들이 지저분한 HTML(닫히지 않은 요소,etc.), 그러나 그렇게 까다로운 대한 준수를 HTML 키마에 특별히 그것은 당신이 a
에 textarea
:
import Text.XML.HXT.Core
import Text.XML.HXT.TagSoup
let content = "<textarea>before<a>link</a>after</textarea>"
let doc = readString [ withTagSoup ] content
runX . xshow $ doc //> hasName "textarea"
이 인쇄 다음과 같다:
["<textarea>before<a>link</a>after</textarea>"]
라고 생각하는 당신이 원하는 것입니다.
제휴하지 않습니다 StackOverflow