我是python的新手,我想学习python语言。在xml文件中解析后,我无法找到修改字符串的解决方案。
这是示例xml文件:
<Celeb>
<artist>
<name>Sammy Jellin</name>
<age>27</age>
<bday>01/22/1990</bday>
<country>English</country>
<sign>Virgo</sign>
</artist>
</Celeb>
以下是代码:
def edit_f():
# Get the 3rd attribute
root = ET.parse('test_file/test_file.xml').getroot()
subroot = root.getchildren()
listchild = subroot.getchildren()[2].text
print(listchild)
# Update the string for the <bday>
replaceStr = listchild.replace('01/22/1990', '01/22/1992')
def main():
edit_f()
结束
如何更新日期?我也尝试过使用datetime()但没有用。
感谢您的帮助。
答案 0 :(得分:1)
我为您的示例添加了评论的工作代码。
def edit_f():
tree = ET.parse('test_file/test_file.xml')
root = tree.getroot()
bdays = root.findall('.//artist/bday') # note: multiple elements
bday = bdays[0] # assuming there is only one artist/bday element
bday.text = '01/22/1992' # or ever any string you need
tree.write('test_file/test_file.xml') # with edited bday
此处您不需要datetime
,只需指定您想要的任何字符串bday.text
N.B。 tree.write()
将重写您的源文件,您无法撤消该文件。将输出写入另一个文件会更安全。