Πώς μπορώ να δημιουργήσω ένα έγγραφο XML σε python

ψήφοι
16

Εδώ είναι δείγμα κώδικα μου:

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)

όταν τρέχω τον παραπάνω κώδικα παίρνω αυτό:

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

Θα ήθελα να πάρετε:

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

Απλά φανταζόταν ότι υπήρχε innerText ιδιοκτησίας, δίνει κανένα σφάλμα μεταγλώττισης, αλλά δεν φαίνεται να λειτουργεί ... πώς μπορώ να πάω για τη δημιουργία ενός κόμβου κείμενο;

Δημοσιεύθηκε 27/08/2008 στις 01:21
πηγή χρήστη
Σε άλλες γλώσσες...                            


3 απαντήσεις

ψήφοι
9

Ρύθμιση ένα χαρακτηριστικό σε ένα αντικείμενο που δεν θα δώσει χρόνο μεταγλώττισης ή ένα σφάλμα χρόνου εκτέλεσης, θα κάνουμε ακριβώς τίποτα χρήσιμο αν το αντικείμενο δεν έχει πρόσβαση (π.χ. « node.noSuchAttr = 'bar'» επίσης δεν θα δώσει ένα λάθος).

Αν δεν χρειάζεστε ένα συγκεκριμένο χαρακτηριστικό του minidom, θα δούμε 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)
Απαντήθηκε 27/08/2008 στις 01:35
πηγή χρήστη

ψήφοι
10

@Daniel

Ευχαριστώ για την απάντηση, θα ήθελα επίσης βρει τον τρόπο να το κάνουμε με το minidom (δεν είμαι σίγουρος για την διαφορά μεταξύ της ElementTree εναντίον του minidom)


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)

Ορκίζομαι ότι προσπάθησα αυτό πριν δημοσιεύσετε την ερώτησή μου ...

Απαντήθηκε 27/08/2008 στις 01:42
πηγή χρήστη

ψήφοι
4

Βρήκα ένα πολύ λεπτομερές tutorial για τη μέθοδο minidom

Εδώ είναι ένα tutorial για τη μέθοδο etree . Είναι πολύ καλύτερο να διαβάσει, και φαίνεται αρκετά απλό. Το ίδιο ισχύει και κατά την ανάλυση του XML (για λίγο)

Απαντήθηκε 27/08/2008 στις 01:45
πηγή χρήστη

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