python lxml我如何在项目名称中使用标签?

问题描述 投票:0回答:1

我需要使用项目的特殊名称来构建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

python xml python-3.x wordpress lxml
1个回答
0
投票

您将namespace prefixwp与标签名称混淆了。名称空间前缀是名称空间URL的文档本地名称。 wp:title要求解析器在标签本身或父标签上寻找xmlns:wp="..." URL,因此它知道title标签属于哪个名称空间。

您需要将该映射提供给元素制造者对象。提供的默认E对象没有这样的名称空间。我要假设wphttp://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
© www.soinside.com 2019 - 2024. All rights reserved.