使用相同的元素实例python创建xml条目

使用相同的元素实例python创建xml条目,python,xml,lxml,Python,Xml,Lxml,我有一个大的XML文件,我想从中得到一个新的XML文件中条目的特定值(这将减少从大XML文件到新XML文件的大小) 现在我编写上述代码: #!/usr/bin/env python from lxml import etree dst = "/root/Downloads/lilmalxml.xml" dsttemp = "/root/Downloads/malxml.xml" filehandler = etree.parse(dsttemp) rootElement = e

我有一个大的XML文件,我想从中得到一个新的XML文件中条目的特定值(这将减少从大XML文件到新XML文件的大小)

现在我编写上述代码:

#!/usr/bin/env python    
from lxml import etree   

dst = "/root/Downloads/lilmalxml.xml"
dsttemp = "/root/Downloads/malxml.xml"

filehandler = etree.parse(dsttemp)
rootElement = etree.Element("list")  
doc = etree.ElementTree(rootElement)

for entry in filehandler.xpath("///entry"):
    virusname = entry.find("virusname").text
    url = entry.find("url").text
    ip = entry.find("ip").text
    formatstr = "<url ip='{0}' virusname='{1}'><![CDATA[{2}]]></url>".format(ip,virusname,url)      
    sub = etree.fromstring(formatstr)
    rootElement.append(sub)

f = open(dst,"w")
doc.write(f,encoding='utf-8',method='xml')
f.close()   
print "FINISHED"

你有没有其他方法来添加条目,但格式和我一样

我看到在输出文件中创建了不同的
url
元素。不知道你在问什么。你期望的输出是什么?谢谢。当我试图在gedit上打开它时,它会阻塞,若我在Leafpad上打开它,它会显示xml的混乱,一切都会覆盖一切。我所说的覆盖是指元素覆盖了它们自己,看起来很混乱,元素不清晰。那么
doc.write(f,encoding='utf-8',method='xml',pretty_print=True)
?哇,我没想到这一点!它像魔术一样工作!非常感谢你!!
<entry>
    <line>1</line>
    <id>88871349</id>
    <first>1456571225</first>
    <last>0</last>
    <md5></md5>
    <virustotal>http://www.virustotal.com/latest-report.html?resource=b637e57062280a903ee05f397feeea24</virustotal>
    <vt_score>27/56 (48.2%)</vt_score>
    <scanner>undef</scanner>
    <virusname><![CDATA[Generic7.RAL]]></virusname>
    <url><![CDATA[http://xiazaiqi2.xpgod.com/down/yy%20at%20134_1062.exe]]></url>
    <recent>up</recent>
    <response>alive</response>
    <ip>222.186.130.206</ip>
    <as>AS4134</as>
    <review>61.164.110.151</review>
    <domain>xpgod.com</domain>
    <country>CN</country>
    <source>APNIC</source>
    <email>anti_spam@wz.zj.cn</email>
    <inetnum>61.164.108.0 - 61.164.111.255</inetnum>
    <netname>RUIAN-TELECOM</netname>
    <descr><![CDATA[Ruian Telecom]]></descr>
    <ns1>ns3.dnsv3.com</ns1>
    <ns2>ns4.dnsv3.com</ns2>
    <ns3></ns3>
    <ns4></ns4>
    <ns5></ns5>
</entry>