从每个元素删除名称空间前缀的一种可能方法:
def strip_ns_prefix(tree): #iterate through only element nodes (skip comment node, text node, etc) : for element in tree.xpath('descendant-or-self::*'): #if element has prefix... if element.prefix: #replace element name with its local name element.tag = etree.QName(element).localname return tree在xpath中有名称空间检查而不是使用
ifstatement的另一个版本:
def strip_ns_prefix(tree): #xpath query for selecting all element nodes in namespace query = "descendant-or-self::*[namespace-uri()!='']" #for each element returned by the above xpath query... for element in tree.xpath(query): #replace element name with its local name element.tag = etree.QName(element).localname return tree



