gpt4 book ai didi

python - 用 lxml.html 替换元素

转载 作者:太空狗 更新时间:2023-10-30 00:08:38 29 4
gpt4 key购买 nike

作为一个整体,我对 lxml 和 HTML 解析器相当陌生。我想知道是否有办法用另一个元素替换树中的一个元素...

例如我有:

body = """<code> def function(arg): print arg </code> Blah blah blah <code> int main() { return 0; } </code> """

doc = lxml.html.fromstring(body)
codeblocks = doc.cssselect('code')

for block in codeblocks:
lexer = guess_lexer(block.text_content())
hilited = highlight(block.text_content(), lexer, HtmlFormatter())
doc.replace(block, hilited)

我想按照这些思路做一些事情,但这会导致“TypeError”,因为“hilited”不是 lxml.etree._Element。

这可行吗?

问候,

最佳答案

关于lxml,

doc.replace(block, hilited)

block是lxml的Element对象,hilited是字符串,不能替换。

有两种方法可以做到这一点

block.text=hilited 

body=body.replace(block.text,hilited)

关于python - 用 lxml.html 替换元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1812764/

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