首页 > 解决方案 > 在 Python 中使用命名空间 :xsi :xsd 解析 xml 被跳过

问题描述

<?xml version="1.0" encoding="UTF-8"?>
<DataRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.myname.net/DataRequest">
  <Version>2.0</Version>
  <Language>EN</Language>
</DataRequest>

我有一个像上面这样的 xml 文件。如果我解析文件并对其进行操作,我稍后想将该文件保存为 xml 文件。但是,它将如下所示。消失了xmlns:xsixmlns:xsd

<?xml version='1.0' encoding='utf-8'?>
<DataRequest xmlns="http://www.myname.net/DataRequest">
  <Version>2.0</Version>
  <Language>EN</Language>
</DataRequest>

使用的代码:

import xml.etree.ElementTree as Et
xml_file = "myfile.xml"
Et.register_namespace('', "http://www.myname.net/DataRequest")
tree = Et.parse(xml_file)
tree.write('output.xml', encoding="utf-8", xml_declaration=True)

标签: pythonxmlelementtree

解决方案


推荐阅读