2016-03-21 8 views
0

kullanarak özel karakterler kaldırarak Kimliği özelliğini alma ve güncelleyerek güncellenmeyeözellik değeri değeri LXML

for elem in doc.xpath('//@id',namespaces={'leg':'http://www.lexis-nexis.com/glp/leg'}): 
       s = str(elem) 
       replaced = re.sub(r'([^a-zA-Z0-9\.\_])','',s) 
       elem=replaced 

Ben değerindeki güncellenmiş değeri değiştirilmiştir ancak elem güncellenmez ne xml hangi i bu değeri yazıyorum alma .

cevap

1

yerine id özelliklerine sahip öğeleri boyunca yineleme ve sonra, öznitelik değerini güncellemek şöyle olabilir:

for elem in doc.xpath('//*[@id]', namespaces={'leg':'http://www.lexis-nexis.com/glp/leg'}): 
    elem.attrib['id'] = re.sub(r'([^a-zA-Z0-9\.\_])', '', elem.attrib['id']) 

# don't forget to write changes back to the disk if necessary 
+0

Teşekkür i xpath // @ id daha kullanıyordum bir sorum var .Ben çok Eleman tipinden başka bir nesneyi alıyordum, bu nesne tipinin farklı olması neden bu problemi yaşıyordu. –