我的代码是:
import xml.etree.ElementTree as ET
from lxml import etree
var1 = '<name>This is my text</name>'
page = etree.Element('first')
doc = etree.ElementTree(page)
second = etree.SubElement(page, 'second')
second.text = var1
doc.write('a.xml', xml_declaration=True, encoding='utf-8')
我的输出是:
<?xml version='1.0' encoding='UTF-8'?>
<first><second><name>This is my text</name></second></first>
我想要的输出是:
<?xml version='1.0' encoding='UTF-8'?>
<first><second><name>This is my text</name></second></first>
实际上,我想通过变量创建子元素,但我不知道我们的变量中有多少个元素。这仅用于测试目的,因此请注意这一点。
无法通过将子元素作为 XML 标记字符串提供来创建子元素。这<name>
元素必须使用创建SubElement
, 就像<second>
.
以下代码产生所需的输出:
from lxml import etree
page = etree.Element('first')
second = etree.SubElement(page, 'second')
name = etree.SubElement(second, 'name')
name.text = "This is my text"
doc = etree.ElementTree(page)
doc.write('a.xml', xml_declaration=True, encoding='utf-8')
另一种方法是解析<name>This is my text</name>
串成一个Element
对象并将其附加到父对象:
from lxml import etree
var1 = '<name>This is my text</name>'
name = etree.fromstring(var1)
page = etree.Element('first')
second = etree.SubElement(page, 'second')
second.append(name)
doc = etree.ElementTree(page)
doc.write('b.xml', xml_declaration=True, encoding='utf-8')
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)