我知道XML的默认编码是UTF-8.所有XML消费者都必须等等.因此,这不仅仅是XML是否具有默认编码的问题.
我也知道文档开头的XML-Declarataion<?xml version="1.0" ... ?>是可选的.并且指定其中的编码也是可选的.
所以我问自己,以下两个XML声明是否是完全相同的两个表达式:
<?xml version="1.0"?>
<?xml version="1.0" encoding="UTF-8"?>
Run Code Online (Sandbox Code Playgroud)
根据我自己目前的理解,我会说这些是等价的,但我不知道.是否已在某处指定了这两个声明的等效性?
(考虑这两个示例行,每个行都是XML文档的第一行,前面是任意(零)字节,并且是UTF-8编码的)
我有一个xml文件,我使用Elementtree为xml文件添加一个新标签.我在处理之前的xml文件如下
<?xml version="1.0" encoding="utf-8"?>
<PackageInfo xmlns="http://someurlpackage">
<data ID="http://someurldata1">data1</data >
<data ID="http://someurldata2">data2</data >
<data ID="http://someurldata3">data3</data >
</PackageInfo>
Run Code Online (Sandbox Code Playgroud)
我使用以下python代码添加新的数据标记并将其写入我的xml文件
tree = ET.ElementTree(xmlFile)
root = tree.getroot()
elem= ET.Element('data')
elem.attrib['ID']="http://someurldata4"
elem.text='data4'
root[1].append(elem)
tree = ET.ElementTree(root)
tree.write(xmlFile)
Run Code Online (Sandbox Code Playgroud)
但是生成的xml文件<?xml version="1.0" encoding="utf-8"?>不存在,文件如下所示
<PackageInfo xmlns="http://someurlpackage">
<data ID="http://someurldata1">data1</data >
<data ID="http://someurldata2">data2</data >
<data ID="http://someurldata3">data3</data >
</PackageInfo>
Run Code Online (Sandbox Code Playgroud)
有没有办法包括xml标头而不是硬编码线