我在 python 2.6.1 中收到路径分隔符错误。我在 python 2.7.2 版本中没有发现这个问题,但不幸的是我只在 2.6.1 版本中需要这个。还有其他方法可以达到同样的效果吗? :(
我的代码:-
import xml.etree.ElementTree as ET #version 1.2.6
import sys
class usersDetail(object):
def __init__(self, users=None):
self.doc = ET.parse("test.xml")
self.root = self.doc.getroot()
def final_xml(self,username):
r = self.root.find("user[@username='user1']") #not working in 2.6.1 :(
self.root.remove(r)
print r
tree = ET.ElementTree(self.root)
tree.write("msl.xml")
if __name__ == '__main__':
parser = usersDetail()
parser.final_xml("user1")
test.xml 是:-
<?xml version="1.0"?>
<users>
<user afp="yes" cifs="yes" username="user1" volume="vol" webdev="yes" /></user>
</users>
这样做的作用是,仅当 username = username 时才会删除 xml。预先感谢您抽出宝贵的时间。
您正在使用 XPath 表达式,该表达式不受ElementTree
Python 2.6 中包含的版本。在经过一段时间后,您需要手动过滤该属性.findall()
:
def final_xml(self,username):
users = self.root.findall("user")
for user in users:
if user.attrib.get('username') == 'user1':
break
else:
raise ValueError('No such user')
# `user` is now set to the correct element
self.root.remove(user)
print user
tree = ET.ElementTree(self.root)
tree.write("msl.xml")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)