2

Pythonを使用してxmlファイルを追加する方法を教えてもらえますか

これは私のfile1.xmlです

<?xml version="1.0"?>
<addressbook>
    <person>
        <name>Eric Idle</name>
        <phone type='fix'>999-999-999</phone>
        <phone type='mobile'>555-555-555</phone>
        <address>
            <street>12, spam road</street>
            <city>London</city>
            <zip>H4B 1X3</zip>
        </address>
    </person>
</addressbook>

そしてそれを別のxmlファイルに追加したい

<?xml version="1.0"?>

 <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
 </note>

私のためにこれを行うことができるモジュールはありますか...

必要な出力は次のとおりです。

<addressbook>
    <person>
        <name>Eric Idle</name>
        <phone type='fix'>999-999-999</phone>
        <phone type='mobile'>555-555-555</phone>
        <address>
            <street>12, spam road</street>
            <city>London</city>
            <zip>H4B 1X3</zip>
        </address>
    </person>
    <note>
        <to>Tove</to>
        <from>Jani</from>
        <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
     </note>
</addressbook>

そして今のところ私はファイルからxmlを読み取る必要がありますが、後でサーバーからxml応答を取得し、それを1つのxmlファイルに変換する必要があります。

4

1 に答える 1

5

編集:質問が大幅に変更されたため、古い回答を削除しました。

lxmlの使用:

addressbook_xml = """<?xml version="1.0"?>
<addressbook>
    <person>
        <name>Eric Idle</name>
        <phone type='fix'>999-999-999</phone>
        <phone type='mobile'>555-555-555</phone>
        <address>
            <street>12, spam road</street>
            <city>London</city>
            <zip>H4B 1X3</zip>
        </address>
    </person>
</addressbook>"""

note_xml = """<?xml version="1.0"?>

 <note>
    <to>Tove</to>
    <from>Jani</from>
    <heading>Reminder</heading>
    <body>Don't forget me this weekend!</body>
 </note>
"""

from lxml import etree

# XML strings to etree
addressbook_root = etree.fromstring(addressbook_xml)
note_root = etree.fromstring(note_xml)

# append the note
addressbook_root.append(note_root)

# print the new addressbook XML document
print etree.tostring(addressbook_root)
于 2012-10-04T15:11:17.527 に答える