问题标签 [libxml2]

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 投票
2 回答
3652 浏览

c - 我可以在 libxml2 中使用相对 XPath 表达式吗?

我想知道是否可以在 libxml2 中使用相对 XPath 表达式。

这来自 javax.xml.xpath API,我想使用 libxml2 做类似的事情:

通过对元素的引用,现在可以编写相对 XPath 表达式来选择子元素:

0 投票
1 回答
1687 浏览

html - 使用 libxml SAX 解析 HTML 片段

我需要解析 HTML 片段,我的意思是文件缺少 <html>、<head> 和 <body> 元素,否则具有格式良好的 XHTML 语法,保证 UTF8 编码。看起来 libxml 非常适合这项任务,但我有一些我不知道如何实现的限制。

  1. htmlSAXParseFile() 的工作做得很好,但它似乎自己创建了 DOM,在此过程中插入了bodyhtml元素。我想自己创建 DOM,因为我可能需要跳过一些元素并即时修改其他元素。是否有可能以某种方式告诉 libxml根本不要创建 DOM,而只是解析 HTML 并调用我的处理程序?
  2. 如果这对于 libxml HTML 解析器来说是不可能的,那么我不妨使用似乎不会创建 DOM 的 xmlSAXUserParseFile()。但是,由于文件具有类似 <p>...</p><p>...</p> 的结构,因此解析器会过早地吐出“文档末尾的额外内容”。有没有办法抑制一些解析错误,同时仍然收到有关它们的通知(只是因为没有人保证这些文件中永远不会有其他错误)?
  3. libxml 中有一大堆解析函数,其中一些接受 xmlParserOption 作为参数。唉,xmlSAXUserParseFile() 没有。而那些似乎都因为一些不相关的 API 设计原因而创建了 DOM。我错过了一个明显的候选人吗?

哦,我承认我不愿意使用 libxml 的 DOM 看起来像是一个怪癖。我受到 RAM 的极大限制,因此我迫切需要对 DOM 进行完全控制,以便能够在内存不足的情况下删除一些节点并在必要时重新读取它们。

提前致谢。

0 投票
1 回答
1739 浏览

perl - 如何使用 Perl 和 XPath 从这个 XML 文件中提取所需的节点?

在执行 XPath 表达式以从 XML DB 文件中提取与死亡率相关的所有年份和值元素后,我想从节点列表中获取每个节点并找到年份节点,打印它,找到值节点,然后打印所有分别地。问题是输出没有显示任何内容。

XML 内容如下所示:

Perl 代码如下所示:

0 投票
2 回答
1844 浏览

ios - 如何从 iOS 写入 XML 文件?

我正在为 iPad 开发一个应用程序,我需要在运行时修改 XML 文件中的几个属性。

我找到了NSXMLDocument类。但我无法将它导入我的项目。

这个类不能用于 iPhone/iPad 开发吗?

我可以考虑其他一些方法吗?

我阅读了有关 libxml 库的信息。是我的答案还是有更好的方法?

0 投票
1 回答
616 浏览

iphone - libxml2.2 中的内存泄漏

我正在使用 libxml2 来解析我的 iPhone 应用程序中的 xml 内容。xml 内容是从类似于 Apple 自己的 TopSongs 示例应用程序的服务器下载的。当我使用 Instruments 工具检查泄漏时,我看到 xmlNewParserCtxt、xmlNewInputStream 和 xmlAllocParserInputBuffer 上报告了内存泄漏。我在适用的地方 (dealloc) 调用了 xmlFreeParserCtxt(context)。

我错过了其他东西吗?这是使用 libxml2 解析器时要解决的已知问题吗?

0 投票
3 回答
1874 浏览

ruby - RVM 不适用于 1.9.1,但适用于 1.8.6 和 1.8.7

2010 年 6 月 25 日更新

使用Google,我不是唯一遇到这个问题的人。显然这个问题与readline有关。有没有人遇到过这个问题?(请参阅下面的 make.error.log 中的错误)正如谷歌所建议的,我编译了 readline:


更新二

遵循上述更新(编译 readline)的建议,导致我遇到了与 libxml2 相关的新问题,这里有详细描述。我运行了这个命令:sudo port install libxml2


更新 III 6/26/10

编译 readline 后,按照 Readline 的RVM 文档中概述的步骤,我遇到了一个新错误:(rvm install 1.8.7 和 rvm install 1.9.1 产生此错误)

此命令:rvm install 1.9.1 -C --with-readline-dir=$HOME/.rvm/usr 导致:


解决方案!!!!2010 年 6 月 27 日更新 IV

通过做 3 件事,我能够让 rvm 发挥作用。在这里看到一个类似的问题:

  1. 我导航到 usr/local/lib/
  2. sudo rm -rf libsqlite3.dylib (注意这可能是一件非常糟糕的事情;但它可以解决这个问题)
  3. 我做sudo port upgrade --force sqlite3 +universal了并得到了 sqlite3 及其所有依赖项来构建 x86_64/i386 通用库

全绿:。


我在正确设置RVM时遇到了问题,我真的对使用 RVM 很感兴趣,但是在我尝试安装新版本的 ruby​​ 后它中止了;你能看出我的 Bashrc 或 Profile 文件有什么问题吗?

提前谢谢了!

巴什终端

bashrc

make.error.log

轮廓

0 投票
5 回答
5731 浏览

ruby - libxml-ruby 在 x86_64 加载失败

我们在服务器端遇到 libxml-ruby gem 问题可能是因为它使用 x86_64 架构:

$ uname -a Linux ip-10-228-171-64 2.6.21.7-2.fc8xen-ec2-v1.0 #1 SMP Tue Sep 1 10:25:30 EDT 2009 x86_64 GNU/Linux

宝石版本 1.1.4

重新安装 gem 没有帮助 有人可以建议做什么吗?

0 投票
1 回答
365 浏览

php - PHP 和 XSLTProcessor 不当行为

简单的问题:为什么从 XSL 样式表调用的 PHP 函数只返回传递的最后一个参数:

foo.xsl:

PHP:

我得到输出

如果我打电话,<xsl:value-of select="php:function('date')" />我就会得到date我的输出。对我来说似乎很奇怪。

版本信息:
PHP 5.3.2
libxslt 版本 1.1.26
libxslt 针对 libxml 版本 2.7.6 编译的
EXSLT 启用
libexslt 版本 1.1.26

0 投票
2 回答
604 浏览

ruby-on-rails - Leopard => 雪豹架构与 nokogiri / rails 的困境

我很困惑。这对我来说是一种常态,但特别是在这种情况下,我觉得我可以联系到 stackoverflowers 的同伴(也就是说,stackoverflow-ers,而不是 stackover-flowers)。

我在重建一些原生红宝石宝石时做噩梦,我想知道这是否是问题的一部分——这台机器的一部分说它是 64 位,而另一部分是 32 位……据我所知?

在“关于此 Mac”下,它显示“Intel Core 2 Duo”,Apple 称其为 64 位。那么为什么,在做了之后

我仍然收到这种错误吗?

具体来说,我已经删除了 nokogiri 并重新安装了它。输出没有错误。

感谢您的任何想法!

更新

我发现了Chris Noos关于类似问题的有用帖子。这就是我所在的位置:

cd /usr/local/lib/ruby/gems/1.8/gems/nokogiri-1.4.2/

然后制作了一个名为 wem_extconf.rb 的文件:

运行sudo web_extconf.rb产生

???但是等一下,它就在那里:

看起来我确实有几个副本——但不确定安装的是哪个端口(我假设它是 macports,它是 /opt?)

0 投票
1 回答
1031 浏览

libxml2 - 使用 libxml API 创建具有两个命名空间的 xml 元素

我想创建一个具有两个命名空间的 xml 元素,如下所示:

我已经检查了现有的 API,但它没有以这种形式出现。我越来越

我正在使用以下 API: