当前位置: 首页 > 面试题库 >

Python 2.7:类型对象“ ElementTree”没有属性“ register_namespace”

郜杰
2023-03-14
问题内容

使用此python 2.7.3(或2.7.0)代码,我想更改属性“ android:versionCode =‘2’”的值,该属性的名称空间前缀为“
android”:

#!/usr/bin/python
from xml.etree.ElementTree import ElementTree, dump
import sys, os

# Problem here:
ElementTree.register_namespace("android", "http://schemas.android.com/apk/res/android")

tree = ElementTree()
tree.parse("AndroidManifest.xml")
root = tree.getroot()
root.attrib["{http://schemas.android.com/apk/res/android}versionCode"] = "3"

dump(tree)

当不使用带有“此处有问题”注释的代码行时,ElementTree会将http://schemas.android.com/apk/res/android的名称空间别名自动命名为“
ns0”(结果为“ ns0:versionCode = ‘3’”。

因此,我使用ElementTree.register_namespace将名称空间url映射为别名“
android”,在此处进行了说明。

我尝试执行此操作时遇到的错误是:

AttributeError: type object 'ElementTree' has no attribute 'register_namespace'

有人知道为什么这行不通吗?此方法应该在python 2.7中可用。


问题答案:

register_namespace()是ElementTree
模块中

包含的功能
包含在ElementTree课程中…

旁白:由于这样做有时会造成混乱,因此通常不建议对模块和类使用相同的名称。但是,我们不会通过重命名广泛使用的模块来破坏生产代码,是吗?

您只需要更改代码:

#!/usr/bin/python
import xml.etree.ElementTree as ET # import entire module; use alias for clarity
import sys, os

# note that this is the *module*'s `register_namespace()` function
ET.register_namespace("android", "http://schemas.android.com/apk/res/android")

tree = ET.ElementTree() # instantiate an object of *class* `ElementTree`
tree.parse("AndroidManifest.xml")
root = tree.getroot()
root.attrib["{http://schemas.android.com/apk/res/android}versionCode"] = "3"

ET.dump(tree) # we use the *module*'s `dump()` function


 类似资料:
  • 问题内容: 我收到以下错误: 类型对象“ datetime.datetime”没有属性“ datetime” 在下一行: 有人知道错误的原因吗? 我导入日期时间是否有帮助 谢谢 问题答案: 日期时间是一个允许处理日期,时间和日期时间(所有都是数据类型)的模块。这意味着它既是顶级模块,又是该模块中的一种类型。这很令人困惑。 您的错误可能是基于模块的混乱命名,而您或您正在使用的模块已经导入了。 但是,

  • 我的代码返回这个错误"'NoneType对象没有属性'发送'" 这是我的密码 导入discord从discord导入操作系统。ext导入命令 客户=不和谐。客户() 类日志记录(commands.Cog):“为您设置日志记录” def设置(客户端):客户端。添加_cog(日志记录(客户端)) 我是在我的齿轮,而不是在主要。派克

  • 我一直在努力学习Python(目前的请求和美丽的soup4),我在网上找到了一个教程 问题是我一直得到下面的错误,根本无法弄清楚... 任何帮助都将不胜感激! 回溯(最近一次调用last):文件“C:\Users\BillyBob\Desktop\Web Scrap.py”,第14行,标题=a.string。strip()AttributeError:'NoneType'对象没有属性'strip'

  • 我目前正在构建一个烧瓶应用程序 我能够从下面的stackoverflow留言板上得到这么远,但是我不认为我做对了什么(可能忽略了什么?) 在Flask应用中运行Dash应用 这里的任何帮助都将不胜感激 这是我的服务器。py代码: 这是我的服务器。py:从应用程序导入服务器,应用程序服务器。运行(调试=True) 当我运行这一切时,我得到:

  • 这是我的密码: 这条线给了我错误 "属性错误:'浮点'对象没有属性'exp'"。X,t是Numpy ndarray。

  • 问题内容: 我在执行selenium代码时遇到错误。 码: 错误: AttributeError:类型对象“ Keys”没有属性“ chord” 我已经导入了所有必需的文件。 问题答案: 没有与课堂上一样的功能(请检查文档)。您可以简单地将其拆分为2个语句。 或者,如果您想同时按下按键,则可以尝试使用。