在lxml中是否有相当于Beautiful Soup的tag.renderContents()方法?
我已经尝试过使用element.text,但是它不会呈现子标记,也不会呈现’.join(元素中的子项为etree.tostring(child)),但这不会呈现子文本.我能找到的最接近的是etree.tostring(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'
>>>
阿里.