xml.etree.ElementTree.ParseError:格式不正确(标记无效):第1行,第0列



我试图用RSS提要中的xml文件集合解析一个目录。我有一个类似的代码,用于另一个运行良好的目录,所以我无法解决问题。我想返回项目,以便将它们写入CSV文件。我得到的错误是:

xml.etree.ElementTree.ParseError: not well-formed (invalid token): line 1, column 0

以下是我从以下网站收集的RSS提要:https://www.ba.no/service/rss

它适用于:https://www.nrk.no/toppsaker.rss和https://www.vg.no/rss/feed/?limit=10&format=rss&类别=&keywords=

这是这个RSS的功能:

import os
import xml.etree.ElementTree as ET
import csv
def baitem():
basepath = "../data_copy/bergens_avisen"
table = []
for fname in os.listdir(basepath):
if fname != "last_feed.xml":
files = ET.parse(os.path.join(basepath, fname))
root = files.getroot()
items = root.find("channel").findall("item")
#print(items)
for item in items:
date = item.find("pubDate").text
title = item.find("title").text
description = item.find("description").text
link = item.find("link").text
table.append((date, title, description, link))
return table

我用print(items)进行了测试,它返回了所有对象。这可能是XML文件的编写方式吗?

问了一个朋友,说用try-except语句测试。找到一个.DS_Store文件,该文件仅适用于Mac计算机。我正在为那些将来可能遇到同样问题的人提供解决方案。

def baitem():
basepath = "../data_copy/bergens_avisen"
table = []
for fname in os.listdir(basepath):
try:
if fname != "last_feed.xml" and fname != ".DS_Store":
files = ET.parse(os.path.join(basepath, fname))
root = files.getroot()
items = root.find("channel").findall("item")
for item in items:
date = item.find("pubDate").text
title = item.find("title").text
description = item.find("description").text
link = item.find("link").text
table.append((date, title, description, link))
except Exception as e:
print(fname, e)
return table

相关内容

  • 没有找到相关文章

最新更新