This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author padremayi
Recipients padremayi
Date 2022-02-19.11:31:31
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1645270291.57.0.995603390679.issue46798@roundup.psfhosted.org>
In-reply-to
Content
XML test file:

<?xml version="1.0"?>
<!DOCTYPE main [
<!ELEMENT main (object+)>
    <!ELEMENT object (description, year, manufacturer)>
        <!ATTLIST object name CDATA #REQUIRED>
        <!ATTLIST object works (yes|no) "yes">
        <!ELEMENT description (#PCDATA)>
        <!ELEMENT year (#PCDATA)>
        <!ELEMENT manufacturer (#PCDATA)>
]>

<main>
    <object name="My object">
        <description>This is a simple object</description>
        <year>2022</year>
        <manufacturer>Myself</manufacturer>
    </object>
</main>


Python code:
import xml.etree.ElementTree


try:
    xml_data = xml.etree.ElementTree.iterparse("test.xml", events=("start", "end"))

    for event, xml_tag in xml_data:
        if event == "end" and xml_tag.tag == "object":
            object_name = xml_tag.get("name")
            object_description = xml_tag.find("description").text
            works = xml_tag.get("works", default="foo")

            print("works value: " + str(works))

            xml_tag.clear()

    print("Done!")

except (NameError, xml.etree.ElementTree.ParseError):
    print("XML error!")


Output:
works value: yes
Done!


Expected behaviour:
works value: foo
Done!
History
Date User Action Args
2022-02-19 11:31:31padremayisetrecipients: + padremayi
2022-02-19 11:31:31padremayisetmessageid: <1645270291.57.0.995603390679.issue46798@roundup.psfhosted.org>
2022-02-19 11:31:31padremayilinkissue46798 messages
2022-02-19 11:31:31padremayicreate