如何使用Python将数据追加到现有的xml文件

问题描述 投票:0回答:1

我必须添加一个新行,如

<?xml version="1.0" encoding="UTF-8"?>

<dblogs

    xmlns="http://url/xml/ns/dblogs"

    xmlns:xsi="http://url/2001/XMLSchema-instance"

    xmlns:pro="http://url/xml/ns/dblogs/ns/pro"

    xsi:schemaLocation="http://url/xml/ns/dblogs >

    <changeSet author="user_id" id="v3.0.0">

        <tagDatabase tag="release/v3.0.0" />

    </changeSet>

    <include file="./file_one.xml" />

    <include file="./file_two.xml" />

</dblogs>

尝试了以下代码,它打印附加值,但实际上并未附加到文件。

import xml.etree.ElementTree as ET 
tree = ET.parse('pqr.xml')
root = tree.getroot() 
b = ET.SubElement(root, 'include')
b.text = './dml/release/v3.0.0/abc_changelog.xml' 
print ET.tostring(root) 
python xml xml-parsing
1个回答
0
投票

您在以下行中缺少结束语“:

xsi:schemaLocation="http://url/xml/ns/dblogs >

添加此代码时,您的代码对我有用,输出如下:

b'<ns0:dblogs xmlns:ns0="http://url/xml/ns/dblogs" xmlns:ns1="http://url/2001/XMLSchema-instance" ns1:schemaLocation="http://url/xml/ns/dblogs">\n\n    <ns0:changeSet author="user_id" id="v3.0.0">\n\n        <ns0:tagDatabase tag="release/v3.0.0" />\n\n    </ns0:changeSet>\n\n    <ns0:include file="./file_one.xml" />\n\n    <ns0:include file="./file_two.xml" />\n\n<include>./dml/release/v3.0.0/abc_changelog.xml</include></ns0:dblogs

请注意,在您的代码中,标签添加为:

<include>./dml/release/v3.0.0/abc_changelog.xml</include>

为了使其以与其他元素相同的方式显示,您还希望包含命名空间(在 Python 中使用 ElementTree 发出命名空间规范)和文件参数(如何向 ElementTree 中的 SubElement 添加属性 (Python)

© www.soinside.com 2019 - 2024. All rights reserved.