Nasıl Python bir xml belgesini oluştururum

oy
16

İşte benim örnek kod:

from xml.dom.minidom import *
def make_xml():
    doc = Document()
    node = doc.createElement('foo')
    node.innerText = 'bar'
    doc.appendChild(node)
    return doc
if __name__ == '__main__':
    make_xml().writexml(sys.stdout)

Yukarıdaki kodu çalıştırdığınızda bu alın:

<?xml version=1.0 ?>
<foo/>

Almak isterim:

<?xml version=1.0 ?>
<foo>bar</foo>

Sadece hiçbir derleyici hata veriyor, ama ... Bir metin düğümü oluşturma hakkında gitmek nasıl işe görünmüyor, bir innerText özellik olduğunu tahmin?

Oluştur 26/08/2008 saat 23:21
kaynak kullanıcı
Diğer dillerde...                            


3 cevaplar

oy
9

Nesne erişmek etmezse bir nesne üzerinde bir öznitelik Ayar derleme zamanı veya bir çalıştırma hatası vermeyecektir, sadece yararlı hiçbir şey yapacağız (yani " node.noSuchAttr = 'bar'" da bir hata vermezdim).

Eğer belirli bir özelliği gerekmedikçe minidom, ben bakardım ElementTree:

import sys
from xml.etree.cElementTree import Element, ElementTree

def make_xml():
    node = Element('foo')
    node.text = 'bar'
    doc = ElementTree(node)
    return doc

if __name__ == '__main__':
    make_xml().write(sys.stdout)
Cevap 26/08/2008 saat 23:35
kaynak kullanıcı

oy
10

@Daniel

Cevabınız için teşekkürler, ben de (ben minidom vs elementtree arasındaki farkın emin değilim) minidom ile bunu nasıl anladım


from xml.dom.minidom import *
def make_xml():
    doc = Document();
    node = doc.createElement('foo')
    node.appendChild(doc.createTextNode('bar'))
    doc.appendChild(node)
    return doc
if __name__ == '__main__':
    make_xml().writexml(sys.stdout)

Benim soru göndermeden önce bu denedim yemin ...

Cevap 26/08/2008 saat 23:42
kaynak kullanıcı

oy
4

Ben buldum minidom yöntemine oldukça ayrıntılı öğretici

İşte bu etree yöntemi için öğretici . Bu okumak için çok daha güzel, ve oldukça basit görünüyor. Ayrıca xml ayrıştırma üzerine çıkması (kısaca)

Cevap 26/08/2008 saat 23:45
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more