Python 如何在被截断的文件中自动关闭xml标记?

Python 如何在被截断的文件中自动关闭xml标记?,python,xml,notepad++,Python,Xml,Notepad++,当我公司的系统出现错误时,我会收到一封电子邮件。这封电子邮件包含全部塞进一行的XML 我编写了一个notepad++Python脚本,它解析出除XML之外的所有内容,并漂亮地打印出来。不幸的是,一些电子邮件包含了太多的XML数据,并且被截断了。一般来说,被截断的数据对我来说并不重要。我希望能够自动关闭任何打开的标记,这样我的Python脚本就可以工作了。它不需要是智能的或正确的,只需要使xml格式足够好,以便脚本运行。有办法做到这一点吗 我对Python脚本、在线应用程序、可下载应用程序等持开放

当我公司的系统出现错误时,我会收到一封电子邮件。这封电子邮件包含全部塞进一行的XML

我编写了一个notepad++Python脚本,它解析出除XML之外的所有内容,并漂亮地打印出来。不幸的是,一些电子邮件包含了太多的XML数据,并且被截断了。一般来说,被截断的数据对我来说并不重要。我希望能够自动关闭任何打开的标记,这样我的Python脚本就可以工作了。它不需要是智能的或正确的,只需要使xml格式足够好,以便脚本运行。有办法做到这一点吗

我对Python脚本、在线应用程序、可下载应用程序等持开放态度

  • 我意识到正确的解决方案是获取非截断的xml,但是使用正确的杠杆来完成工作要比仅仅处理它多得多
使用

使用

如果您已安装,则很简单:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup("""
... <?xml version="1.0" encoding="utf-8"?>
... <a>
...   <b>foo</b>
...   <c>bar</""", "xml")
>>> soup
<?xml version="1.0" encoding="utf-8"?>
<a>
<b>foo</b>
<c>bar</c></a>
>>来自bs4导入组
>>>汤=美汤
... 
... 
……福
…bar如果您已经安装,那么它很简单:

>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup("""
... <?xml version="1.0" encoding="utf-8"?>
... <a>
...   <b>foo</b>
...   <c>bar</""", "xml")
>>> soup
<?xml version="1.0" encoding="utf-8"?>
<a>
<b>foo</b>
<c>bar</c></a>
>>来自bs4导入组
>>>汤=美汤
... 
... 
……福

…b XML和HTML的副本不相同-根据正在处理的数据,不指定XML解析器可能会导致数据被错误解释(以及添加示例中所示的错误).XML和HTML不一样-根据正在处理的数据,不指定XML解析器可能会导致数据被错误解释(以及添加示例中所示的错误)。
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup("""
... <?xml version="1.0" encoding="utf-8"?>
... <a>
...   <b>foo</b>
...   <c>bar</""", "xml")
>>> soup
<?xml version="1.0" encoding="utf-8"?>
<a>
<b>foo</b>
<c>bar</c></a>