在 lxml 中是否有与 Beautiful Soup 的 tag.renderContents()
方法等效的方法?
我试过使用 element.text
,但它不会呈现子标签,以及 ''.join(etree.tostring(child) for child in element)
,但这不会呈现子文本。我能找到的最接近的是 etree.tostring(element)
,但它呈现了我不想要的 element
的开始和结束标记。
我是否忽略了另一种方法(或实现此目的的替代方法)?
最佳答案
您的最初想法已基本完成。 element.text
为您提供元素的第一个文本子元素,您的列表理解为您提供其他所有内容。如果将两个字符串连接在一起,就会得到您要查找的内容:
>>> xmlstr = "<sec>header <p>para 0</p> text <p>para 1</p> footer</sec>"
>>> element = etree.fromstring(xmlstr)
>>>
>>> element.text + "".join(map (etree.tostring, element))
'header <p>para 0</p> text <p>para 1</p> footer'
>>>
阿里。
关于python - 等效于 lxml 中 Beautiful Soup 的 renderContents() 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028270/