问题标签 [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 回答
505 浏览

expat-parser - 如何将 expat-parser 与俄语字符集一起使用?

我尝试使用 expat 进行 XML 解析,并且我在 XML 文件中有俄语符号,这个符号被 expat 错误地解释了。

我过期了_str:Р СѓСЃСЃРєРС'Р в„– текст</p>

而不是:Русский текст

这是我的剪切代码:

XML 文件:

0 投票
2 回答
8773 浏览

arm - Libtool 声称它在交叉编译期间不支持共享库

我正在尝试为运行 busybox 1.13 的 ARM 嵌入式机器构建 expat (2.0.0) XML 解析库,在 ./configure 期间,我收到错误:

我已经指定了我的 gcc、g++、ar、ranlib、strip 等,这些都可以通过配置工具找到,并且我有最新的 libtool(在撰写本文时为 2.4.2)在 Ubuntu 12.10 上运行,那为什么说 libtool 不支持共享库呢?我的配置命令是:

...调用的完整输出是:

有人可以向我解释一下如何configure确定 libtool 是否支持构建共享库吗?

0 投票
2 回答
322 浏览

c++ - 64 位 libjingle 无法解析登录 XML 并出现 expat 错误:ERROR_INVALID_TOKEN

只有在尝试在64-bit下运行我的登录代码时,我才会无法登录talk.google.com进行初始测试。32位工作正常。

启用日志记录宏和 siginput 日志记录后,我可以看到它失败的 XML 是这样的:

在 expat 内部,我可以看到有人XML_ERROR_INVALID_TOKEN被抛出,但我不太确定从那里去哪里。有时它可以进行实际登录,但不久后就死了。它似乎是相对随机的,但总是在前 10 个响应内死亡。我认识到最后的垃圾数据可能是导致无效令牌的原因,但不确定是什么原因造成的。

我最初的想法是切换到64 位(??) 时出现编码问题,但老实说,我只是不知道什么会导致发生这种情况。

以下是 libjingle 死亡的日志中的一个附加示例片段:

还有一个:

其他:

其他:

以前有人遇到过这类问题吗?

0 投票
1 回答
231 浏览

c++ - 当我打印到屏幕或文件时,Expat 打印出垃圾

当我从我的 XML 文档中打印出信息时,我会在每一行之前得到 ��。这是我的 XML 文档。

这是我的代码

这是它打印出来的:

这就是我希望它打印出来的内容:

任何帮助将不胜感激。谢谢你

0 投票
2 回答
4336 浏览

php - PHP XML Expat 解析器:如何只读取 XML 文档的一部分?

我有一个具有以下结构的 XML 文档:

我能够创建解析器并打印出整个文档,但问题是我只想打印(用户)节点和具有特定属性(id)的子节点。

我的 PHP 代码是:

start()函数中使用 this 可以选择正确的节点,但对读取过程没有任何影响:

任何帮助,将不胜感激

更新: XMLReader 工作,但使用 if 语句时它停止工作:

0 投票
1 回答
195 浏览

php - 如何在 php 中使用 expat 从 xml 追加、添加、更新和删除节点

我是php的新手。我想将 xml 解析到数据库中。我尝试使用 DomDocument。但我的朋友建议我使用 expat2 解析器。我在谷歌上搜索它,但没有得到正确的答案,只得到了阅读 xml 的例子。但我想从解析器中添加、更新删除节点,还想将我的 xml 转换为数据库。所以请建议我。谢谢。

0 投票
2 回答
1765 浏览

xml - 为什么 expat 拒绝破折号字符为无效?

在我的 XML 输入文件中,我有以下行:

50\%和之间的那个字符75\%不是连字符而是破折号

当我在 Python 中使用 expat 解析这个 XML 文件时:

我收到以下错误:

其中 35 是我在上面从 XML 输入文件中引用的行,而 99 是%右破折号之前的列。

如果我用 替换破折号&#x2013;,则错误消失并且一切正常。所以我有一个解决方法。但我不明白为什么会这样。

我读到的关于这个问题的内容——例如Python 的 minidom、xml 和非法 unicode 字符——告诉我一些在 UTF-8 中合法的字符在 XML 中是不合法的,并指出我的第 2.2 节 XML规范合法字符范围。但是 Char 的定义包括 range #x20-#xD7FF。并且#x2013显然属于这个范围。所以有什么问题?

FWIW,XML 输入文件以 UTF-8 声明开头,

我使用十六进制编辑器验证短划线是否由字符序列 E2 80 93 表示,这是短划线的正确 UTF-8 编码。那么为什么外国人不接受呢?这是外籍人士的错误吗?

0 投票
1 回答
893 浏览

c - Expat (C) - (几乎)每一行的“无效令牌”

我有一些 XML 我试图用 C 中的 Expat 处理。XML 可以用 Java 解析,所以我没有理由相信它格式错误。此外,我拥有的 C 代码将解析我“手动”插入的字符串文字 - 但它无法解析我的 XML 文件。

这是代码(我添加了一些东西——如果上帝希望我们使用调试器,他不会给我们 printf):

这是我试图解析的 XML 文件:

这是输出的示例...

(适用于所有线路)

如果我“作弊”并在阅读后添加此行...

该行将被解析(当然代码会因其他原因中断)。

因此,在从磁盘文件读取时似乎会发生一些混乱……这可能被读取为 16 位吗?但是将解析器的编码更改为 NULL 或 UTF-16 似乎没有任何区别。

任何人都可以提供解释吗?(如果有什么不同的话,我已经在 64 位 OSX 和 Linux 机器上运行了这段代码并且遇到了同样的问题)

0 投票
0 回答
99 浏览

c++ - nuget 中的 expat.redist 部署了错误的 DLL

我已将 Expat ( https://github.com/coapp-packages/expat ) 的 Nuget/Coapp 包添加到我的 Visual C++ 2012 项目中。该项目使用 Unicode 字符集,我终于找到了配置 Expat 构建规则的位置(项目属性>“配置属性”>“引用包”>“expat”)。我已将“UTFwidth”属性设置为“utf16”。这是有效的,即在编译期间XML_Char变为。wchar_t但是,包含 DLL 的可再发行包似乎不受此设置的影响,因为它将“libexpat.dll”而不是“libexpatw.dll”复制到输出目录。如果我手动复制正确的 DLL,我的程序将按预期运行。

如何修复构建过程以复制正确版本的 DLL?

0 投票
1 回答
399 浏览

c++ - C++ std::map std::bitset 段错误

我有这个代码:

这旨在在访问页面的该字节时用 1 标记一个 4096 位长的位集。

当我使用大约 1GB 的 XML 进行测试时,这段代码在我的测试机器上运行良好。但是当我在完整的东西(220GB 的 XML)上运行它时,它会出现以下分段错误:

但是它在运行的早期就这样做了,所以很难认为这是数据大小的产物。无论如何,我在使用一些非常相似的代码分析这个更大的数据集时没有问题(在https://github.com/mcmenaminadrian上查看我的 github 存储库- 这个项目是 memsize,但 pagestat 使用非常相似的代码)。此代码的唯一区别因素似乎是位集的使用。

有人能发现到目前为止我一直没有发现的错误吗?

(代码是多线程的 - bitset 线程安全吗?这可能是库问题 - 我的测试系统是 Mac OSX,但“生产”系统是 Linux - Ubuntu 12.04 LTS?)