如何在xml.etree中设置命名空间前缀

3 投票
1 回答
1208 浏览
提问于 2025-04-16 04:42

我想在xml.etree中设置命名空间前缀。我在网上找到了register_namespace(prefix, url)这个方法,但它报了“未知属性”的错误。我也试过用nsmap=NSMAP,但这也不行。如果能给我一个示例语法,教我怎么添加指定的命名空间前缀,我会非常感激。

1 个回答

1

register_namespace 这个功能是在 lxml 2.3 版本中才引入的(当时还处于测试阶段)。

我认为在创建一个元素时,你可以提供一个 nsmap 参数(这是一个字典,用来映射前缀和网址),但是我觉得你不能更改已经存在的元素的这个参数。(元素上有一个 .nsmap 属性,但修改它似乎没有效果。元素上还有一个 .prefix 属性,但这个是只读的,不能更改。)

撰写回答