【发布时间】:2018-04-23 07:58:17
【问题描述】:
我有一个现有的 xml 文件并想向其中添加一些内容。
现有的xml文件:
<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
<edmx:Reference Uri="/redfish/v1/Schemas/Resource_v1.xml">
<edmx:Include Namespace="Resource"/>
<edmx:Include Namespace="Resource.v1_0_0"/>
<edmx:Include Namespace="Resource.v1_0_2"/>
<edmx:Include Namespace="Resource.v1_4_0"/>
</edmx:Reference>
<edmx:DataServices>
<Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="Service">
<EntityContainer Name="Service" Extends="ServiceRoot.v1_0_0.ServiceContainer"/>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
现在我想在不修改现有文件内容的情况下添加以下内容
我的问题是如何在不修改此标签内现有 xml 文件的内容的情况下将 xml 的内容添加到现有文件中:<edmx:Edmx xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0">
我试过这段代码:
new="""<edmx:Reference Uri="/redfish/v1/Schemas/Chassis_v1.xml">
<edmx:Include Namespace="Chassis"/>
<edmx:Include Namespace="Chassis.v1_0_0"/>
<edmx:Include Namespace="Chassis.v1_0_1"/>
</edmx:Reference>"""
tree = ET.parse('metadata.xml')
root = tree.getroot()
ET.register_namespace('edmx','http://docs.oasis-open.org/odata/ns/edmx')
ET.register_namespace('','http://docs.oasis-open.org/odata/ns/edm')
root.text = new
print ET.tostring(root,method="html")
但是输出是:
<edmx:Edmx xmlns="http://docs.oasis-open.org/odata/ns/edm" xmlns:edmx="http://docs.oasis-open.org/odata/ns/edmx" Version="4.0"><edmx:Reference Uri="/redfish/v1/Schemas/Chassis_v1.xml">
<edmx:Include Namespace="Chassis"/>
<edmx:Include Namespace="Chassis.v1_0_0"/>
<edmx:Include Namespace="Chassis.v1_0_1"/>
</edmx:Reference><edmx:Reference Uri="/redfish/v1/Schemas/Resource_v1.xml">
<edmx:Include Namespace="Resource"></edmx:Include>
<edmx:Include Namespace="Resource.v1_0_0"></edmx:Include>
<edmx:Include Namespace="Resource.v1_0_2"></edmx:Include>
<edmx:Include Namespace="Resource.v1_4_0"></edmx:Include>
</edmx:Reference>
<edmx:DataServices>
<Schema Namespace="Service">
<EntityContainer Extends="ServiceRoot.v1_0_0.ServiceContainer" Name="Service"></EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
【问题讨论】:
-
下面的答案是你的预期输出吗?
标签: python xml-parsing