繁体   English   中英

如何在多个 XML 文件中搜索特定关键字

[英]How to search for a specific keyword in multiple XML files

我必须分析多个 XML 文件(> 1000 个文件)。

这些 XML 文件中的一个标签包含自由文本。 我需要在此标签中搜索特定关键字,例如“示例”,并将 output(文件名,自由文本/标签)保存在 CSV 中。

我尝试过这样的事情(我是 Python 的新手......每个人都从小做起)。

import os
import os.path

for fname in os.listdir('C:/Testpath/xml'):
    if os.path.isfile(fname):
        f = open(fname)
        if 'Example' in f.read():
            print(fname)
        f.close()

但这似乎不起作用,因为我得到的唯一 output 是一个不包含指定关键字的 XML 文件。 有任何想法吗?

这应该让你开始

import xml.etree.ElementTree as ET
for fname in os.listdir('C:/Testpath/xml'):
    if fname.endswith('.xml'):
        with open fname as f:
            tr = ET.parse(f)
            for e in tr.iter():
                if 'Example' in fname:
                    print(fname)

试试这个。 首先,你需要安装这个 package: pip install simplified_scrapy

如果你能举个 XML 的例子可能会更好。

from simplified_scrapy import SimplifiedDoc, utils
files = utils.getSubFile('C:/Testpath/xml', end='.xml')
rows = []
keywordReg = '(word1)|(word2)'
for f in files:
    doc = SimplifiedDoc(utils.getFileContent(f))
    node = doc.getElementByReg(keywordReg)
    if node:
        rows.append([f, node.tag, node.text])

utils.save2csv('test.csv', rows, newline='')

这里有更多的例子。 这个库很容易使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM