我有一个XML文件,其中包含通常与勒索软件和恶意软件相关联的文件名和文件扩展名。
使用Python,我想解析“模式值”以仅打印“模式值”内部包含的值。目的是输出到一个简单的文本文件,在每一行中显示文件名或文件扩展名。
我试图在Notepad ++中使用宏,但这是失败的。我是Python新手,我想使用Python完成此操作
下面是XML文件:
<?xml version="1.0" ?>
<Root >
<Header DatabaseVersion = '2.0' ></Header>
<QuotaTemplates ></QuotaTemplates>
<DatascreenTemplates ></DatascreenTemplates>
<FileGroups >
<FileGroup Name = 'Anti-Ransomware%sFile%sGroups' Id = '{367CFFB7-DDED-4AA8-8E17-203B6B97F411}' Description = '' >
<Members >
<Pattern PatternValue = '!!%sRETURN%sFILES%s!!.txt' ></Pattern>
<Pattern PatternValue = '!!!%sHOW%sTO%sDECRYPT%sFILES%s!!!.txt' ></Pattern>
<Pattern PatternValue = '!!!%sREAD%sTHIS%s-%sIMPORTANT%s!!!.txt' ></Pattern>
<Pattern PatternValue = '!!!!!ATENÇÃO!!!!!.html' ></Pattern>
<Pattern PatternValue = '!!!!!SAVE%sYOUR%sFILES!!!!.txt' ></Pattern>
<Pattern PatternValue = '!!!-WARNING-!!!.html' ></Pattern>
<Pattern PatternValue = '!!!-WARNING-!!!.txt' ></Pattern>
<Pattern PatternValue = '!!!GetBackData!!!.txt' ></Pattern>
<Pattern PatternValue = '!!!README!!!*.rtf' ></Pattern>
<Pattern PatternValue = '!!!READ_TO_UNLOCK!!!.TXT' ></Pattern>
<Pattern PatternValue = '!!!SAVE%sYOUR%sFILES!.bmp' ></Pattern>
<Pattern PatternValue = '!##%sDECRYPT%sFILES%s##!.txt' ></Pattern>
<Pattern PatternValue = '!#_DECRYPT_#!.inf' ></Pattern>
<Pattern PatternValue = '!DMALOCK3.0*' ></Pattern>
<Pattern PatternValue = '!Decrypt-All-Files-*.txt' ></Pattern>
<Pattern PatternValue = '!Please%sRead%sMe!.txt' ></Pattern>
<Pattern PatternValue = '!READ.htm' ></Pattern>
<Pattern PatternValue = '!Recovery_*.html' ></Pattern>
<Pattern PatternValue = '!Recovery_*.txt' ></Pattern>
<etc.../>
</Members>
</FileGroup>
</FileGroups>
</Root>
同样,目标是在新行上的文本文件中输出每个文件名/文件扩展名。例如
test.malware
test.ransomware
test.virus
etc
etc
etc
预先感谢您的协助
答案 0 :(得分:0)
用于python的标准xml解析器通常是xml.etree.ElementTree
库。
基本用法是首先解析xml,这可以从文件名或字符串完成(如果您已经以其他方式读取文件(或以其他方式生成字符串,例如:从端口或东西)。
dimnames
然后,您在如何找到感兴趣的元素方面有很多选择,但是我建议使用一些内置搜索工具,例如ElementTree.iterfind()
import xml.etree.ElementTree as ET
tree = ET.parse('myxmlfile.xml')
根据结构的不同,此搜索可能没有足够的选择性,尽管您可以首先找到所需的部分(文件组的成员或非成员等),然后从那里进行搜索。