问题标签 [expat-parser]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 使用 Expat 在 Python 中解析 XML
背景:我来自 C#-land,所以我正在寻找能够通过 Xpath 选择来处理节点和值的东西。
到目前为止,这是我的代码:
我应该使用什么标准库来处理作为对象的 DOM 元素及其属性,就像在 C# 中一样?
我正在寻找类似 NodeList nodes = Parser.SelectNodes("Xpath")
python - Python.expat 无法解析带有错误符号的 XML 文件。怎么绕?
我正在尝试使用 expat 解析 XML 文件(OSM 数据),并且有些行带有一些 expat 无法解析的 Unicode 字符:
(开头行中的 XML 文件编码为“UTF-8”)
文件很旧,肯定有错误。在现代文件中,我看不到 UTF-8 错误,它们被解析得很好。但是如果我的程序遇到损坏的符号怎么办,我可以采取什么解决方法?是否可以加入 bz2 编解码器(我解析压缩文件)和 utf-8 编解码器以忽略损坏的字符,或者将它们更改为“?”?
python - 让外籍人士在 python 中使用 .dtd 进行实体替换
我正在尝试读取一个看起来像这样的 xml 文件
造成问题的关键是
部分:解析器调用其字符处理程序两次,一次使用“Jos”,一次使用“A. Blakeley”。现在我明白如果它不知道 eacute 实体,这可能是正确的行为。但是,这是在我拥有的 dblp.dtd 中定义的。不过,我似乎无法说服 expat 使用此文件。我只能说
但外籍人士仍然无法识别我的实体。为什么没有办法告诉 expat 使用哪个 DTD?我试过了
- 将文件放入与 XML 相同的目录中
- 将文件放入程序的工作目录
- 用绝对路径替换xml文件中的引用
我错过了什么?谢谢。
python - Python + Expat:实体上的错误
我写了一个小函数,它使用 ElementTree 和 xpath 来提取 xml 文件中某些元素的文本内容:
第三次测试失败,但有以下异常:
ExpatError:引用无效字符号:第 1 行,第 13 列
实体是�
非法的 XML 吗?不管是不是,我要解析的文件都包含它,我需要一些方法来解析它们。对于除 Expat 之外的其他解析器或 Expat 的设置有什么建议可以让我这样做吗?
更新:我刚刚发现了BeautifulSoup,一个标签汤解析器,如下面的答案评论中所述,为了好玩,我回到这个问题并尝试将它用作 ElementTree 前面的 XML 清理器,但它尽职尽责地将其转换�
为一个同样无效的空字节。:-)
...产量
不过,在我的特殊情况下,我并不真正需要 XPath 解析,我可以使用 BeautifulSoup 本身及其非常简单的节点寻址样式parsed_tree.test.elem1.contents[0]
。
c - 在 Windows 上将 EXPAT 编译为静态链接的 .a
我正在使用 MingW 在 Windows 上编写 C 程序,并希望使用 EXPAT XML 库。我想静态编译我的程序,所以我需要静态 .a 库。
有什么方法可以在 Windows 上将 EXPAT 编译为 .a 静态独立库?
c - XMPP 服务器的 libxml2 与 expat
我正在尝试在Go中从头开始创建一个 XMPP 库(以及后来的服务器)(尽管语言本身无关紧要),作为了解 XMPP 协议和服务器软件开发的一般方法的一种手段。
众所周知,XMPP 是基于 XML 的消息传递协议,它依赖于大量短而频繁的 XML 流。我认为对于此类应用程序,基于事件的 XML 解析器应该更好,因为我不需要 DOM 和所有这些(如果我错了,请纠正我)。请记住,这个库是为服务器设计的,所以可能有很多实例同时运行;
对于该用例,libxml2 还是 expat,两者中哪一个具有更好的性能和内存使用率?
c++ - 使用 expat startelement 处理程序 C++
我正在使用 expat 读取 xml 文件。我想从xml文件中指定的配置中填充我的一些类成员变量。我已经定义了我的 startelement 处理程序,
这将被引用如下:
目前我正在使用全局结构,g_stConfigInfo
将所有值存储在Start()
例如,
然后我在做myclass.sInputName = g_stConfigInfo.sInputname
我宁愿不使用全局变量,而是能够使其成为需要填充其成员变量的类的成员函数。我也不想在 Start() 中有这个类的实例。这样做的最佳方法是什么?
python - 基于 Expat 的 xml 解析脚本在 Linux 上不工作,在 Windows 上工作
我正在用 python 编写一组工具来从交通模拟软件生成的一些 xml 文件中提取数据。由于生成的文件可能非常大,我使用 xml.parsers.expat 来解析它们。
问题是,当我在 Windows XP 机器上运行我的脚本时,它运行良好,但在家里,在 Ubuntu 10.10 上,在同一个文件上,我收到以下错误:
ExpatError: not well-formed (invalid token): line 1, column 0
该文件最初以 utf-8 编码,并且标签中声明的编码是 ascii,因此尝试将其更改为 utf-8(或 UTF8 或 utf8)但没有成功。由于没有 BOM,我尝试编写它,但仍然没有成功。我还尝试用Unix换行符(CR)替换Windows换行符(CR / LF)。也没有任何成功。
此外,python 的工作版本是 2.7.1,在我的 Ubuntu 机器上是 2.6.6,但不要认为我的问题与此有关:几周前我将工作计算机的 Python 从 2.6 升级到 2.7,没有遇到任何问题。
由于我不是这里的专家,所以我的想法不多了,有什么提示吗?
编辑:经过进一步调查(我现在很头疼,我讨厌与 Unicode 相关的麻烦),看起来问题已通过将系统环境变量 LANG、LC_ALL 和 LANGUAGE 正确设置为(在我的情况下)“fr_FR.utf-8”来解决. 我不明白为什么他们一开始没有,为什么现在,它起作用了......
我感谢你们的手!
python - python-ldap初始化时httpd上的分段错误(11)
我在 RHEL 5 和 Python 2.43 上将 mod_wsgi 用于 Django 应用程序(OSQA)(无法升级)。
我设置了站点并且工作正常,然后尝试将身份验证与 python-ldap 集成以访问 Active Directory 属性,例如用户名、电子邮件地址等。
Apache httpd 崩溃并显示以下消息:
我最初认为这是由于 Apache 和 Python 之间的 expat 库不一致,但后来我升级了 libexpat.so 模块以匹配 Python 版本的 pyexpat (1.95.8)。
从 django 日志中的大量日志记录中,我可以看到执行此行时发生了 seg 错误:
python-ldap 是否有特定的东西导致这个问题?关于如何调试的任何其他想法?
谢谢
python - 优雅地从 expat 中的解析错误中恢复
XML 应该是严格的,因此有一些 Unicode 字符在 XML 中是不允许的。但是,我正在尝试使用通常包含这些字符的 RSS 提要,并且我想避免从无效字符中解析错误,或者从它们中优雅地恢复并呈现文档。
在此处查看示例(无论如何在 3 月 21 日): http: //feeds.feedburner.com/chrisblattman
处理 XML 提要中的 unicode 的推荐方法是什么?检测字符并替换为空字节,编辑解析器或其他方法?