Bir xml dosyası açmaya ve belirli etiketlerden değerler almaya çalışıyorum. Bunu çok yaptım ama bu özel xml bana bazı sorunlar veriyor. İşte xml dosyasının bir bölüm:xmlns ad boşluk bırakma lxml
<?xml version='1.0' encoding='UTF-8'?>
<package xmlns="http://apple.com/itunes/importer" version="film4.7">
<provider>filmgroup</provider>
<language>en-GB</language>
<actor name="John Smith" display="Doe John"</actor>
</package>
Ve işte benim piton kodunun bir örnektir:
metadata = '/Users/mylaptop/Desktop/Python/metadata.xml'
from lxml import etree
parser = etree.XMLParser(remove_blank_text=True)
open(metadata)
tree = etree.parse(metadata, parser)
root = tree.getroot()
for element in root.iter(tag='provider'):
providerValue = tree.find('//provider')
providerValue = providerValue.text
print providerValue
tree.write('/Users/mylaptop/Desktop/Python/metadataDone.xml', pretty_print = True, xml_declaration = True, encoding = 'UTF-8')
ben bu çalıştırdığınızda sağlayıcı etiketi veya değerini bulamıyor. xmlns="http://apple.com/itunes/importer"
'u kaldırırsam, tüm beklendiği gibi çalışır. Sorum, bu ad alanını nasıl kaldırabilirim, hiç ilgimi çekmediğim için, lxml kullanarak ihtiyacım olan etiket değerlerini alabilir miyim?
Thats mükemmel ubuntu,, şerefe bir tedavi işler: Burada
işlevlerdir. – speedyrazorubuntu, bir etiketin özniteliğini nasıl bulabilirim, orijinal örneğimi değiştirdim, bu yüzden aktörün isminin değerini arıyorum = – speedyrazor
Eğer 'element' değerine sahipseniz, öznitelik değerine 'elementle erişebilirsiniz .attrib [ 'adı'] '. Ancak, 'sağlayıcı 've' aktör 'öğelerini bir XML dosyasından kazıyorsanız, her ikisini de aynı anda' | '(veya) sözdizimini kullanarak tek bir XPath kurabilirsiniz. Ne demek istediğimi göstermek için yayını düzenledim. – unutbu