将lxml解析的输出写入新文件

时间:2013-10-03 11:00:46

标签: xml file lxml

我一直在这个论坛上收到帮助来解析xml文件并提取某些值。我可以使用以下内容成功地将所需的值打印到屏幕上:

for info in root.xpath('//xmlns:ProgramInformation', namespaces=nsmap):

   print (info.get('programId')) # retrieve crid
   print (info.find('.//xmlns:Title', namespaces=nsmap).text) # retrieve title
   print (info.find('.//xmlns:Genre/xmlns:Name', namespaces=nsmap).text) # retrieve genre

我现在需要将输出写入文件(不是XML格式,而是格式为ABC | DEF | GHI,每一行都在新行上)。

我尝试了fo.write(我在别处使用过),但这似乎不是解决方案。我还查看了元素树'write'命令,但我不明白如何实现它。

有人可以建议如何从lxml输出构造字符串并将其写入文件吗?

1 个答案:

答案 0 :(得分:0)

使用open使用写入模式(w)打开输出文件,然后使用file.write写入文件。

with open('output.txt', 'w') as f:
    for info in root.xpath('//xmlns:ProgramInformation', namespaces=nsmap):
       crid = (info.get('programId')) # retrieve crid
       title = (info.find('.//xmlns:Title', namespaces=nsmap).text) # retrieve title
       genre = (info.find('.//xmlns:Genre/xmlns:Name', namespaces=nsmap).text) # retrieve genre
       f.write('{}|{}|{}\n'.format(crid, title, genre))