mrt*_*man 1 python xml notepad++
当我公司的系统出现错误时,我会收到一封电子邮件。该电子邮件包含全部挤在一行中的 XML。
我编写了一个 notepad++ Python 脚本,它解析除 XML 之外的所有内容并漂亮地打印它。不幸的是,有些电子邮件包含太多 XML 数据,并且会被截断。一般来说,截断的数据对我来说并不那么重要。我希望能够自动关闭任何打开的标签,以便我的 Python 脚本正常工作。它不需要聪明或正确,只需要使 xml 格式足够好以便脚本运行。有没有办法做到这一点?
我对 Python 脚本、在线应用程序、可下载应用程序等持开放态度。
使用美丽的汤
>>> import bs4
>>> s= bs4.BeautifulSoup("<asd><xyz>asd</xyz>")
>>> s
<html><head></head><body><asd><xyz>asd</xyz></asd></body></html>
>>
>>> s.body.contents[0]
<asd><xyz>asd</xyz></asd>
Run Code Online (Sandbox Code Playgroud)
请注意,它自动关闭了“asd”标签”
要创建一个 notepad++ 脚本来处理这个问题,
#import Beautiful Soup
import bs4
#get text in document
text = editor.getText()
#soupify it to fix XML
soup = bs4.BeautifulSoup(text)
#convert soup object to string again
text = str(soup)
#clear editor and replace bad xml with fixed xml
editor.clearAll()
editor.addText(text)
#change language to xml
notepad.menuCommand( MENUCOMMAND.LANG_XML )
#soup has its own prettify, but I like the XML tools version better
notepad.runMenuCommand('XML Tools', 'Pretty print (XML only - with line breaks)', 1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
847 次 |
| 最近记录: |