如何在插入etree.Element元素时同时设置文本内容?
关于lxml Element插入时同时设置文本的问题
你尝试的这种写法是行不通的:
product_node.insert(cnt, etree.Element("vod_type").text="hello")
原因是赋值语句etree.Element("vod_type").text="hello"的返回值是被赋予的字符串"hello",而insert方法需要接收的是Element对象,不是字符串,这么写会直接抛出类型错误。
不需要必须拆成三行代码,你可以用更简洁的写法:
写法一:分号连接语句(兼容所有Python版本)
elem = etree.Element("vod_type"); elem.text = "hello"; product_node.insert(cnt, elem)
写法二:海象运算符(Python 3.8及以上)
利用海象运算符先创建并绑定元素,再设置文本:
product_node.insert(cnt, elem := etree.Element("vod_type")); elem.text = "hello"
如果优先考虑代码可读性,拆成三行的写法其实是最清晰的,后续维护起来也更方便。
内容的提问来源于stack exchange,提问作者David542
相关产品推荐
相关产品推荐

