我对 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。
这可行吗?
Regards,
关于lxml,
In doc.replace(block, hilited)
block是 lxml 的 Element 对象,hilited是字符串,您无法替换它。
有两种方法可以做到这一点
block.text=hilited
or
body=body.replace(block.text,hilited)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)