SO中文参考
首页
(current)
程序语言
c
java
python
c++
go
javascript
swift
c#
操作系统
linux
ubuntu
centos
unix
数据库
oracle
mysql
mongodb
postgresql
框架
node.js
angular
react-native
avalon
django
twisted
hadoop
.net
移动开发
android
ios
搜索
当我使用 python ElementTree 时,解析带有 ü 等特殊字符的 xml 文件失败Schnelle Multiplikation von Polynomen über Körpern der </desc> <question vote="1"> <p>xml文件:</p> <pre><code><?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE dblp SYSTEM "dblp.dtd"> <dblp> <title>Schnelle Multiplikation von Polynomen über Körpern der Charakteristik 2.</title> </dblp> </code></pre> <p>我用 python 如下传递这个文件,我还有一个 .dtd 文件:</p> <pre><code>import xml.etree.ElementTree as ET tree=ET.parse(r"../data/test_dblp.xml") root=tree.getroot() for i in range(0,9): print root[0][i].text </code></pre> <p>报错:</p> <blockquote> <p>xml.etree.ElementTree.ParseError: undefined entity 'ü';</p> </blockquote> </question> <answer tick="false" vote="1"> <p>使用本网站另一篇文章的解决方案解决:</p> <pre><code>from xml.etree.ElementTree import iterparse, XMLParser import htmlentitydefs class CustomEntity: def __getitem__(self, key): if key == 'umml': key = 'uuml' # Fix invalid entity return unichr(htmlentitydefs.name2codepoint[key]) parser = XMLParser() parser.parser.UseForeignDTD(True) parser.entity = CustomEntity() for (event, node) in iterparse('dblp.xml', events=['start'], parser=parser): print node.tag node.clear() </code></pre> </answer> <answer tick="false" vote="0"> <p>uuml 看起来像一个标准的 html5 实体。在运行 xml 解析器之前将它们转换为它们的 unicode 字符可能会有所帮助。在 python3.4+ 中,您可以为此使用<pre><code>html.unescape</code></pre>。</p> <pre><code>from html import escape, unescape textXML = re.sub("\\&\\w+\\;", lambda x: escape(unescape(x.group(0))), text) </code></pre> </answer> </body></html>
问题描述
投票:0
回答:0
python
xml
dtd
最新问题
如何使用故事板触发从子自定义类发送到父级的事件?
如何修复从 Go 中的 system-d 服务运行时环境变量不起作用的问题
yocto 为 qemu 安装自定义 glibc 版本
PostgreSQL 权限如何工作。从表中选择所需的权限
在以下来自 .Net Maui XAML 2009 的示例中,为什么relativeSource无法获取Picker?
Tailwind CSS 中有哪些选项可将样式应用于预构建组件的自定义类?
了解 Java 应用程序的堆外内存、不安全和 MaxDirectMemorySize
是否可以在不定义新类型的情况下为map[string]string声明一些Marshall、Unmarshall方法?
防止应用程序在后台时杀死 Android 进程
计算从事件到 R 中另一个事件的天数
如何将 prop 表单子组件发送到父组件...?
休斯顿 Kundan 新娘珠宝套装的价格范围是多少?
React-native IOS 构建 PhaseScriptExecution 错误
Python - 当我尝试增加要匹配的键的值时,从字典中打印键值对突然不会打印
动态随机数:在 .htaccess 内容安全策略 (CSP) 和 PHP 中使用动态随机数时出错
使用 MediaStore API 从图库读取图片所需的权限
Python中是否可以将长行分成多行? [重复]
如何在 Azure DevOps Enterprise Server 中自动执行更改请求
尝试发送短信到美国
使 Cloud Run 服务和 Android 应用程序连接到同一个 Firestore 数据库
© www.soinside.com 2019 - 2024. All rights reserved.