如何使用文本和标签创建元素?

mnv*_*mnv 3 python lxml python-3.x

我已经创建了下一个 XML:

item = E('p') # <p/>
Run Code Online (Sandbox Code Playgroud)

现在我需要将下一个内容放入其中:

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
Run Code Online (Sandbox Code Playgroud)

结果我需要下一个 XML 节点:

<p>some <bold>text</bold></p>
Run Code Online (Sandbox Code Playgroud)

如何正确地做到这一点?

Mau*_*yer 5

您需要创建子元素:

from lxml import etree

root = etree.Element("p")
root.text = 'some'

bold = etree.SubElement(root, 'bold')
bold.text = 'text'

print (etree.tostring(root))
Run Code Online (Sandbox Code Playgroud)

返回:

<p>some<bold>text</bold></p>
Run Code Online (Sandbox Code Playgroud)