【发布时间】:2021-08-11 11:07:41
【问题描述】:
我正在使用 lxml 将标签中带有破折号的 xml 字符串对象化。
例如:
from lxml import objectify
xml_string = """<root>
<foo-foo name="example" foo-description="description">
<bar doc-name="name" />
<test tag="test" />
</foo-foo>
</root>"""
obj = objectify.fromstring(xml_string)
在这一步之后,元素的名称带有破折号。
由于名称中的破折号,我无法访问 foo-foo。
如何从标签名称和属性名称中删除破折号?
【问题讨论】:
-
你想从给定的 xml 中得到什么?
-
我希望能够访问 foo-foo 及其子子项。例如
obj.foo-foo和obj.foo-foo.bar都应该可以访问。 -
@mzjn 这只是一个例子。我现在已经编辑了描述。
-
我怀疑这可能是相关的:stackoverflow.com/q/2064329/407651
-
...但请注意,如果您使用
getattr而不是点表示法,您可以访问带有破折号的属性。例如,如果你有一个bar-bar元素,你可以getattr(obj, 'bar-bar')
标签: python xml lxml lxml.objectify