蟒2.6.1:预期路径分离器([)(Python 2.6.1 : expected path sep

2019-08-03 10:43发布

我在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>

这将完成是它会删除XML只有在用户名=用户名。 在此先感谢您的宝贵时间。

Answer 1:

您正在使用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") 


文章来源: Python 2.6.1 : expected path separator ([)