Reputation: 10143
I has create next XML:
item = E('p') # <p/>
Now I need to put next content into it:
text = "some <bold>text</bold>"
# item.append(text)
# TypeError: Argument 'element' has incorrect type (expected lxml.etree._Element, got str)
# item.append(fromstring(text))
# lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
I need as result next XML node:
<p>some <bold>text</bold></p>
How to do it correctly?
Upvotes: 4
Views: 8999
Reputation: 18126
You need to create sub-elements:
from lxml import etree
root = etree.Element("p")
root.text = 'some'
bold = etree.SubElement(root, 'bold')
bold.text = 'text'
print (etree.tostring(root))
Returns:
<p>some<bold>text</bold></p>
Upvotes: 6