pythonxml.dom.minidom.parse和utf8 xml文件

2024-06-01 07:32:44 发布

您现在位置:Python中文网/ 问答频道 /正文

对不起我的英语:)

我在解析utf-8格式的xml文件时遇到了一个问题,内容中包含西里尔文文本

xml中的某些行:

............

<programme start="20110405022000 +0300"
stop="20110405031000 +0300" channel="4000"> <title
lang="bul">Модерно</title> <sub-title
lang="bul"></sub-title> <desc
lang="bul">Тоук шоу. Модерно е токшоу
с водещ и продуцент Радост Драганова.
Предаването разисква всички теми,
които интересуват жените, като им
помага да изглеждат по-добре и да се
чувстват по-добре</desc> <category
lang="bul">0</category> </programme>
<programme start="20110405031000 +0300"
stop="20110405050000 +0300" channel="4000"> <title
lang="bul">Клонинг</title> <sub-title
lang="bul"></sub-title> <desc
lang="bul">Еп. 89 и 90, сериал.
Любовта между Хаде и Лукас се ражда в
Мароко, където двамата се запознават.
Но мюсюлманските обичаи разделят
влюбените. Хаде е родена и израснала в
САЩ, но след смъртта на майка си
заминава за Мароко при чичо си
Али</desc> <category
lang="bul">0</category> </programme>

............

我使用DOMTree=xml.dom.minidom.parse(“文本.xml)并得到一个错误:

^{pr2}$

第10行第18列是第一个西里尔文符号。 在xml文件中,第一行是

<?xml version="1.0" encoding="utf-8"?>

有什么想法吗?在


Tags: 文件文本内容langtitle格式channelxml
3条回答

如果我把第一行的编码改成koi8-r就行了。但我想用utf-8

我假设您的意思是如果XML文件以

<?xml version="1.0" encoding="KOI8-R" ?>

{cd1>中的}是真的。在

如果您想使用UTF-8输入文件,那么您不应该用KOI8-R编码文件,或者应该将文件从KOI8-R转换为UTF-8。在

如果“我想和utf-8一起工作”有别的意思,请解释。在

我建议使用chardet。下面的代码可能会有所帮助。我的xml数据是GB3212。我只使用chardet将我的源代码转换为utf-8。我希望这有帮助。在

xml数据类型=chardet.检测(xml数据源)['encoding']

打印xml数据类型 ''检查编码''

xml_data=xml_数据解码(xml数据编码)

xml数据=xml.data.encode(“utf-8”)

xml文件必须是格式良好的,即它必须只有一个根元素。尝试在输入文件的开头和结尾添加根标记。在

相关问题 更多 >