3

私のxml :-

<users>
</users>

子要素を追加するだけです:-

<users>
<user name="blabla" age="blabla" ><group>blabla</group>
</users>

いくつかのエラーを与える私のコード:(

import xml.etree.ElementTree as ET
doc = ET.parse("users.xml")
root_node = doc.find("users")
child = ET.SubElement(root_node, "user")
child.set("username","srquery")
group  = ET.SubElement(child,"group")
group.text = "fresher"
tree = ET.ElementTree(root_node)
tree.write("users.xml")

"append" を見逃しましたが、どこに追加すればよいかわかりません。前もって感謝します。

4

2 に答える 2

2

何が起こるかを説明するためにわずかに変更されたバージョン:

root = ET.fromstring('<users></users>') # same as your doc=ET.parse(...).find(...), btw. doc=root
el = ET.Element('group')   # creating a new element/xml-node
root.append(el)            # and adding it to the root

ET.tostring(root)
>>> '<users><group /></users>'
el.text = "fresher"        # adding your text
ET.tostring(root)
>>>  '<users><group>fresher</group></users>'
于 2012-11-08T03:12:58.927 に答える
2

この行を変更

root_node = doc.find("users")

...この行まで

root_node = doc.getroot()

ここで重要なことは、これdocはすでにルート ノードへの参照であり、 でアクセスできるということgetroot()です。はルートの子ではなく、ルート自体であるため、doc.find('users')何も返しません。users

于 2012-11-08T03:07:25.540 に答える