gpt4 book ai didi

html - 是否可以通过其中包含 的 hxt <textarea> 进行解析?

转载 作者:可可西里 更新时间:2023-11-01 13:14:37 26 4
gpt4 key购买 nike

我使用 hxt 来解析一些 html。它里面有未转义的 html <textarea> . hxt 给出了无效的结果(它偶然发现了一个带有内容的标签,在这种情况下它是 <a> )。最小测试用例(对于 GHCi)是

let doc = parseHtml "<textarea>before<a>link</a>after</textarea>"
runX . xshow $ doc //> hasName "textarea"

给出 [<textarea>before</textarea><textarea/>]结果。

看起来没有内容的标签(例如 <tag/>)不会中断解析。

有什么办法可以用hxt解析这样的html吗?

最佳答案

问题是 HandsomeSoup (我假设这是你的 parseHTML 的来源)对诸如 textarea 之类的事情很挑剔。不能包含 a在有效的 HTML 中,并将尝试“修复”它看到的任何此类错误。

你能切换到hxt-tagsoup吗? ?它仍然会接受杂乱的 HTML(未封闭的元素等),但对遵守 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>"]

我想这就是你想要的。

关于html - 是否可以通过其中包含 <a> 的 hxt &lt;textarea&gt; 进行解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12670344/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com