问题标签 [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 一次控制 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 = True
and parser.buffer_size = 65536
,但 Expat 仍在read()
使用仅 2,048 的参数调用该方法。
有可能增加这个吗?
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
并运行./configure
and make
,并且成功了。我已经在网上搜索过这个问题,但对我来说似乎没什么用。所以,如果你知道为什么,谢谢你告诉我!
xml - Haskell解析内存不足的大xml文件
因此,我使用了几个 Haskell XML 库,包括 hexpat 和 xml-enumerator。在阅读了 Real World Haskell (http://book.realworldhaskell.org/read/io.html) 中的 IO 章节后,我的印象是,如果我运行以下代码,在我浏览它时它会被垃圾收集。
但是,当我在一个大文件上运行它时,内存使用量会随着它的运行而不断攀升。
我究竟做错了什么?我的假设是错误的吗?地图/过滤器是否强制它评估所有内容?
我的最终目标是用一个简单的类似 sax 的界面来解析一个巨大的 xml 文件。我不想知道整个结构才能得到通知我发现了一个“事件”。
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)停止阿帕奇:
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 解析器需要一个字符串。所以我需要做两件事之一:
神奇地将 DOM 元素转换为保持所有标签完整的字符串,以便我可以在 expat 解析器中使用它。但是,如果我能做到这一点,我就不需要 expat 解析器,我可以直接回显转换后的字符串......
使用外籍人士以外的其他东西。
顺便说一句,我知道我可以将 XML 中的and 替换为 and <
,但这使得代码很难阅读和编辑。如果可能的话,我想避免它。>
<
>
c - 使用 expat 验证 XML 文档
我对 expat 的 XML 验证有疑问。我还没有找到可以帮助我验证我的 xml 文档的文档或 wiki。
是否可以使用 libexpat 和 C 程序通过 xml 模式(xsd 文件)验证我的 XML 文档?
如果响应为 no ,如何通过 DTD 文件进行验证?
在此先感谢您的帮助。
c - C 编译器无法创建可执行文件
我今天安装了 OSx 1.6 和 1.7 (lion)(之前安装了 1.5)。在此之后,我重新安装了 xcode 和命令行工具。从 macport 卸载并清理所有端口。当我尝试从 macports 安装某些东西时出现错误:(重新安装 xcode 不起作用)
安装日志:
我试图运行:sudo port -f install tcl +headers,错误:
xml - 以人类可读的方式将任意文本编码为 XML 的好方法是什么?
到目前为止,我将文本放入 CDATA 标记中,并通过将文本拆分为多个相邻的 CDATA 来处理文本中出现 CDATA 结尾的可能性。
我不确定这一点,但 XML 解析器可能无法在 CDATA 标记内保留换行符,对吗?这也意味着以某种方式逃离他们......
我想使用 Perl 生成这些 XML 文件,并用 C++(使用 expat)、Java 和 C# 解析它们。
最重要的是,我希望生成的文件在某种程度上是人类可读/可修改的。有谁知道适合这些需求的任何编码方案?我正在使用它来存储数据库的数据,因此它需要接受任意文本,并在解析时返回完全相同的文本。
gcc - 当前终端(debian)中无法识别 gcc 新安装的库(libexpat1-dev)
我花了很多时间试图编译一个基于 expat 的示例程序。
当我尝试编译时收到以下错误消息
我已经运行了以下命令: sudo apt-get install expat libexpat1 libexpat1-dev libxmltok1-dev
所以我搞砸了很长时间,试图让错误消息消失,这样我就可以编译这个(简单的)小程序,但无济于事。
最终,出于纯粹的随机性,我决定切换到虚拟终端。
我运行了完全相同的命令,这次它没有问题。
谁能告诉我这是为什么?我需要运行什么来刷新库路径吗?
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 的情况下克服这个问题?