问题标签 [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.

0 投票
1 回答
190 浏览

python - 使用 Expat 一次控制 read() 的字节数

我正在使用 Python 的 Expat 解析一些 XML(通过调用parser = xml.parsers.expat.ParserCreate()然后将相关回调设置到我的方法)。

似乎当 Expat 调用read(nbytes)返回新数据时,nbytes总是 2,048。我有很多 XML 需要处理,并且怀疑这些小的 read() 使整个过程相当缓慢。作为参考,我在运行 Windows 7 的 Intel Xeon X5550、2.67 GHz 上看到大约 9 MB/s 的吞吐量。

我已尝试设置parser.buffer_text = Trueand parser.buffer_size = 65536,但 Expat 仍在read()使用仅 2,048 的参数调用该方法。

有可能增加这个吗?

0 投票
3 回答
2862 浏览

macos - 在 Mac OS X 10.7.2 上构建 libjingle 时出错,例如“error: string.h: No such file or directory”

我未能在 Mac OS X 10.7.2 上构建 libjingle。当我 $path_to_swtoolkit/hammer.sh根据 libjingle 的 README 运行时,输出如下。

我确定我的 Mac 中存在string.h,assert.h等等。我也尝试cd到该目录expat-2.0.1并运行./configureand make,并且成功了。我已经在网上搜索过这个问题,但对我来说似乎没什么用。所以,如果你知道为什么,谢谢你告诉我!

PS我的问题似乎是这样的:http ://groups.google.com/group/googletestframework/browse_thread/thread/e8ed5a3f410b7ec7/a8ba72e727801fc8?show_docid=a8ba72e727801fc8

0 投票
2 回答
941 浏览

xml - Haskell解析内存不足的大xml文件

因此,我使用了几个 Haskell XML 库,包括 hexpat 和 xml-enumerator。在阅读了 Real World Haskell (http://book.realworldhaskell.org/read/io.html) 中的 IO 章节后,我的印象是,如果我运行以下代码,在我浏览它时它会被垃圾收集。

但是,当我在一个大文件上运行它时,内存使用量会随着它的运行而不断攀升。

我究竟做错了什么?我的假设是错误的吗?地图/过滤器是否强制它评估所有内容?

我的最终目标是用一个简单的类似 sax 的界面来解析一个巨大的 xml 文件。我不想知道整个结构才能得到通知我发现了一个“事件”。

0 投票
1 回答
2505 浏览

python - 如何替换/更新 Apache 使用的 expat 库的版本?

(免责声明:我刚开始使用 Linux,没有太多配置 Apache 和 Python 的经验。)

我有一个相当常见的问题,在这里http://code.google.com/p/modwsgi/wiki/IssuesWithExpatLibrary进行了更深入的解释。基本上,我 99% 确定我的主要问题是我的 Apache 使用的是 expat 库的 1.95.7 版,而我的 Python 使用的是 expat 库的 2.0.1 版;因此,当我将它们一起使用时,我会遇到分段错误。

正如页面最底部的链接中所解释的,我需要将 Apache 使用的 expat 库的版本替换/更新为 Python 使用的版本。我该怎么做?(请记住,我对这种事情非常缺乏经验。)

编辑:这个问题已经解决。下面我记录了我为安装 Apache、从源代码构建 Python、安装 mod_wsgi 以及解决可怕的 expat 问题所做的一切,以供我和其他遇到类似问题的人参考。

1) 用五笔安装 Ubuntu

安装 Apache

2) 在 Ubuntu 上,下载 Apache Unix Source httpd-2.2.21.tar.gz

3) 从 Apache HTTPDd tarbell 中提取源代码:

4) 从提取的目录中配置 Apache HTTPd 源代码树:

5) 构建构成 Apache HTTPd 包的各个部分:

6)将包安装在我在步骤4中指定的目录下

7) 启动 Apache HTTP 服务器:

8)检查本地主机并打印“它工作!”

9) 停止 Apache HTTP 服务器:

从源代码安装 Python

10) 获取构建任何东西所需的所有通用包(例如编译器等)

11) 编辑 /etc/apt 中的 sources.list 文件,将文件中包含的完全相同的“deb”行添加到末尾,但“deb-src”除外:

12) 更新了 apt-get 以识别变化:

13) 获取构建 Python 所需的所有库:

14)下载python源代码Python-2.7.2.tgz,解压,在目录下运行如下:

15) 内置 Python:

16)安装的Python:

安装 mod_wsgi

17) 下载mod_wsgi源代码tar球mod_wsgi-3.3.tar.gz

18) 从解压目录中解压并使用 python 配置:

19)构建配置的包:

20) 安装在 Apache 模块中:

21) 下载 Django-1.3.1.tar.gz

22) 提取文件:

23) 从目录中安装 Django 项目:

24) 编辑 Apache httpd.conf 文件:

在文件末尾添加了以下指令:

25)在django项目目录下创建了一个测试文件:

在文件中添加了以下内容:

26)启动阿帕奇:

27) 测试本地主机并打印“Hello World!”

28) 停止阿帕奇:

测试可怕的外籍人士问题:

29) 编辑 test.wsgi 文件:

在文件顶部添加以下内容:

30)启动阿帕奇:

31)它打印“Hello World!” 有一个神。

32)停止阿帕奇:

0 投票
2 回答
156 浏览

php - 在 PHP 中仅使用 expat 解析文档的一部分

我正在用 PHP 构建一个网站,其中的内容存储在 XML 文件中。基本上我有一个index.php页面,它检查查询字符串并从 XML 提供适当的页面。

例如,输入www.mysite.com/?page=home将导致 PHP 脚本检查 XML 文件中的<page id="home">标签并将该标签内的任何内容粘贴到index.php.

标签的内容<page>存储为 HTML,因此:

我希望能够获取适当的<page>标签并以某种方式解析内容。我知道<page>标签中的所有内容都是有效的 HTML,所以我打算使用 expat 来遍历标签,echo然后直接返回。

所以我正在使用该DOMDocument方法找到正确的<page>,它工作正常,除了内容作为 DOM 元素返回。expat 解析器需要一个字符串。所以我需要做两件事之一:

  1. 神奇地将 DOM 元素转换为保持所有标签完整的字符串,以便我可以在 expat 解析器中使用它。但是,如果我能做到这一点,我就不需要 expat 解析器,我可以直接回显转换后的字符串......

  2. 使用外籍人士以外的其他东西。

顺便说一句,我知道我可以将 XML 中的and 替换为 and <,但这使得代码很难阅读和编辑。如果可能的话,我想避免它。>&lt;&gt;

0 投票
2 回答
2282 浏览

c - 使用 expat 验证 XML 文档

我对 expat 的 XML 验证有疑问。我还没有找到可以帮助我验证我的 xml 文档的文档或 wiki。

是否可以使用 libexpat 和 C 程序通过 xml 模式(xsd 文件)验证我的 XML 文档?

如果响应为 no ,如何通过 DTD 文件进行验证?

在此先感谢您的帮助。

0 投票
2 回答
1955 浏览

c - C 编译器无法创建可执行文件

我今天安装了 OSx 1.6 和 1.7 (lion)(之前安装了 1.5)。在此之后,我重新安装了 xcode 和命令行工具。从 macport 卸载并清理所有端口。当我尝试从 macports 安装某些东西时出现错误:(重新安装 xcode 不起作用)

安装日志:

我试图运行:sudo port -f install tcl +headers,错误:

0 投票
3 回答
422 浏览

xml - 以人类可读的方式将任意文本编码为 XML 的好方法是什么?

到目前为止,我将文本放入 CDATA 标记中,并通过将文本拆分为多个相邻的 CDATA 来处理文本中出现 CDATA 结尾的可能性。

我不确定这一点,但 XML 解析器可能无法在 CDATA 标记内保留换行符,对吗?这也意味着以某种方式逃离他们......

我想使用 Perl 生成这些 XML 文件,并用 C++(使用 expat)、Java 和 C# 解析它们。

最重要的是,我希望生成的文件在某种程度上是人类可读/可修改的。有谁知道适合这些需求的任何编码方案?我正在使用它来存储数据库的数据,因此它需要接受任意文本,并在解析时返回完全相同的文本。

0 投票
1 回答
5845 浏览

gcc - 当前终端(debian)中无法识别 gcc 新安装的库(libexpat1-dev)

我花了很多时间试图编译一个基于 expat 的示例程序。

当我尝试编译时收到以下错误消息

我已经运行了以下命令: sudo apt-get install expat libexpat1 libexpat1-dev libxmltok1-dev

所以我搞砸了很长时间,试图让错误消息消失,这样我就可以编译这个(简单的)小程序,但无济于事。

最终,出于纯粹的随机性,我决定切换到虚拟终端。

我运行了完全相同的命令,这次它没有问题。

谁能告诉我这是为什么?我需要运行什么来刷新库路径吗?

0 投票
6 回答
42127 浏览

perl - 如何在没有 expat-devel 的情况下安装 XML::Parser?

XML::Parser 无法在一个全新的 64 位 Debian 机器上构建。发出后cpan XML::Parser,cpan 失败,出现很多关于 Expat.c 和 Expat.xs 的错误:

输出开头的消息解释说构建需要expat-devel 。

Expat 必须在构建 XML::Parser 之前安装,我在标准库目录中找不到它。使用您的操作系统包管理器安装“expat-devel”包。请参阅“自述文件”。

但是expat-devel不在 Debian 存储库中。

是否有可能在不需要从源代码构建/安装 expat 的情况下克服这个问题?