I want to preserve tags as \\n when extracting the text content from lxml elements.
Example code:
fragment = \'&l
Prepending an \n character to the tail of each element should give the result you're expecting:
>>> import lxml.html as html
>>> fragment = 'This is a text node.
This is another text node.
And a child element.Another child,
with two text nodes'
>>> doc = html.document_fromstring(fragment)
>>> for br in doc.xpath("*//br"):
br.tail = "\n" + br.tail if br.tail else "\n"
>>> doc.text_content()
'This is a text node.\nThis is another text node.\n\nAnd a child element.Another child,\n with two text nodes'
>>> fragment
'This is a text node.
This is another text node.
And a child element.Another child,
with two text nodes'