我需要使用项目的特殊名称来构建xml文件,这是我当前的代码:
from lxml import etree
import lxml
from lxml.builder import E
wp = E.wp
tmp = wp("title")
print(etree.tostring(tmp))
当前输出是这里:
b'<wp>title</wp>'
我想成为:
b'<wp:title>title</title:wp>'
我如何创建具有以下名称的项目:wp:title
?
您将namespace prefix,wp
与标签名称混淆了。名称空间前缀是名称空间URL的文档本地名称。 wp:title
要求解析器在标签本身或父标签上寻找xmlns:wp="..."
URL,因此它知道title
标签属于哪个名称空间。
您需要将该映射提供给元素制造者对象。提供的默认E
对象没有这样的名称空间。我要假设wp
是http://wordpress.org/export/1.2/
Wordpress命名空间,因为这似乎是最有可能的。
而不是使用默认的E
元素创建器,而是创建您自己的ElementMaker
实例并将其传递给namespace
参数:
from lxml.builder import ElementMaker
E = ElementMaker(namespace={"wp": "http://wordpress.org/export/1.2/")
title = E.title