如何使用python elementtree只更改一个元素的元素文本

时间:2015-09-30 21:02:48

标签: python elementtree

我有以下xml示例文件:

<Book>
    <Location>page10</Location>
    <Chapter>
        <Location>page11</Location>
    </Chapter>
</Book>

我想在<Location>下方更改元素<book>的文本值。 使用findall可以同时提供“位置”和“位置”。元素。 使用find给出第一个,这可能是正确的,但是如果元素&#39;章&#39;放在位置之前,而不是我得到错误的元素。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用路径..

>>> import xml.etree.ElementTree as etree
>>> frag = '<Book><Chapter><Location>page11</Location></Chapter><Location>page10</Location></Book>'
>>> tree = etree.fromstring(frag)
>>> tree.findall('./Location')[0].text
'page10'
>>> tree.findall('./Location')[1].text
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range