使用Floki移除HTML节点报错,如何修复CaseClauseError问题?
解决Floki find_and_update触发CaseClauseError的问题
问题根源
Floki.find_and_update/3的更新回调函数必须返回有效的Floki节点结构——比如标签三元组{tag, attrs, children}、普通文本字符串,或是节点列表。你返回的空字符串""不符合内部的模式匹配规则,因此触发了CaseClauseError。
正确解决方式
如果要直接移除目标节点,更新函数返回**空列表[]**即可:
Floki.find_and_update(html_doc, "div.xyz", fn _ -> [] end)
如果只是想清空节点内部内容(保留div.xyz标签本身),可以返回一个空内容的节点结构:
Floki.find_and_update(html_doc, "div.xyz", fn {tag, attrs, _} -> {tag, attrs, []} end)
内容的提问来源于stack exchange,提问作者wintermeyer
相关产品推荐
相关产品推荐

