【发布时间】:2017-02-23 17:04:59
【问题描述】:
我有一个这样的 XML
<xml>
<access>
<user>
<name>user1</name>
<group>testgroup</group>
</user>
<user>
<name>user2</name>
<group>testgroup</group>
</user>
<access>
</xml>
我现在想将<group>testgroup2</group> 添加到 user1 子树。
使用以下我可以得到名称
access = root.find('access')
name = [element for element in access.iter() if element.text == 'user1']
但我无法使用它告诉我的 name.find('..') 访问父级
AttributeError: 'list' object has no attribute 'find'.
是否有可能访问名称中的文本为“user1”的<access> 的确切<user> 子级?
预期结果:
<xml>
<access>
<user>
<name>user1</name>
<group>testgroup</group>
<group>testgroup2</group>
</user>
<user>
<name>user2</name>
<group>testgroup</group>
</user>
<access>
</xml>
重要提示:我不能使用 lxml 来使用 getparent() 方法,我被困在 xml.etree
【问题讨论】:
-
您已将
name设置为列表,因此当然没有find属性,因为列表对象没有该方法。 -
我知道。这就是错误消息显然告诉我的内容。但是我该如何解决我的问题呢?
-
向我们展示您预期的 XML 结果。
-
我不知道,但我想我已经写了我想添加的内容。不过,我已经用我的预期结果更新了这个问题。