Python 如何将一个根添加到一个不';我没有一个根标签

Python 如何将一个根添加到一个不';我没有一个根标签,python,xml,parse-error,Python,Xml,Parse Error,我有一个XML文件没有一个根标记。我想向这个XML文件添加一个新的根标记 以下是现有的XML: <A> <Val>123</Val> </A> <B> <Val1>456</Val1> </B> 但在第一行,我得到了以下错误: xml.etree.ElementTree.ParseError:文档元素后的垃圾:第4行第4列 正如@kjhughes在评论中指出的,XML规范要求文档必

我有一个XML文件没有一个根标记。我想向这个XML文件添加一个新的根标记

以下是现有的XML:

<A>
    <Val>123</Val>
</A>

<B>
    <Val1>456</Val1>
</B>
但在第一行,我得到了以下错误:

xml.etree.ElementTree.ParseError:文档元素后的垃圾:第4行第4列

正如@kjhughes在评论中指出的,XML规范要求文档必须具有单个根元素

from xml.etree import ElementTree as ET

node = ET.parse(Input_FilePath)
xml.etree.ElementTree.ParseError: junk after document element: line 4, column 0
您需要手动读取文件并自己添加标记:

from xml.etree import ElementTree as ET

with open(Input_FilePath) as f:
    xml_string = '<X>' + f.read() + '</X>'

node = ET.fromstring(xml_string)
从xml.etree导入ElementTree作为ET
将open(Input_FilePath)作为f:
xml_字符串=“”+f.read()+“”
node=ET.fromstring(xml\u字符串)

我认为您可以在没有xml解析器的情况下使用。 如果您知道根标记丢失,您可以通过这种方式添加它

with open('test.xml', 'r') as f:
    data = f.read()

with open('test.xml', 'w') as f:
    f.write("<x>\n" + data + "\n</x>")
    f.close()
以open('test.xml,'r')作为f的
:
data=f.read()
以open('test.xml','w')作为f:
f、 写入(“\n”+数据+“\n”)
f、 关闭()
如果不知道,您可以通过以下方式进行检查:

   import re
   if re.match(u"\s*<x>.*</x>", text, re.S) != None:
      #do something   
      pass
重新导入
如果重新匹配(u“\s**”,文本,重新匹配)!=无:
#做点什么
通过
with open('test.xml', 'r') as f:
    data = f.read()

with open('test.xml', 'w') as f:
    f.write("<x>\n" + data + "\n</x>")
    f.close()
   import re
   if re.match(u"\s*<x>.*</x>", text, re.S) != None:
      #do something   
      pass