问题标签 [hpricot]

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 回答
260 浏览

ruby-on-rails - 使用 Hpricot 进行非贪婪搜索?

我正在使用 Hpricot 来遍历 XML 数据包。对于我所在的每个节点,我想获取直接子节点的列表。但是使用时

我得到所有后代部分,而不仅仅是直系子女。

我怎样才能解决这个问题?

0 投票
4 回答
2239 浏览

ruby-on-rails - 让 Rails 与 Hpricot 一起玩

我试图让 Hpricot 在我的开发机器上与 Rails 一起工作。

我已经使用标准的“gem install hpricot”安装了 Hpricot [0.8.1],并确认它适用于我的标准 Ruby 安装 [1.8.7];但是,当我尝试使用我的 Rails [2.1.0] 安装时,我得到一个错误 -

TypeError:来自/usr/lib/ruby/1.8/hpricot/tag.rb:130 的类BogusETag 的超类不匹配

似乎存在某种冲突,但谷歌搜索错误并没有找到任何有用的信息。

有任何想法吗 ?提前致谢。

0 投票
3 回答
1467 浏览

ruby-on-rails - Hpricot CSS 类搜索

我正在编写一些代码,该代码会为页面上的两个 css 类抓取页面。我只是为此使用 Hpricot 搜索方法:

...对于找到的每个项目,我创建一个对象并将其放入一个数组中,除了一件事之外,这很好用。

搜索将遍历整个 html 页面,并在每次遇到“.first_class”时将一个对象添加到一个数组中,然后它将再次遍历文档以查找“.second_class”,从而得到包含所有的最终数组在数组中以错误的顺序搜索项目,即所有“.first_class”对象,然后是所有“.second_class”对象。

有没有一种方法可以让我一次性搜索文档并在每次遇到指定类之一时将一个对象添加到数组中,给我一个按它们遇到的顺序排列的项目数组我正在抓取的页面?

非常感谢任何帮助。谢谢

0 投票
5 回答
2087 浏览

xml - 删除 XML 标记及其内容之间的任何内容

我需要删除 XML 标记之间的任何内容,尤其是空格和换行符。

例如从以下位置删除空格和新闻行:
</node> \n<node id="whatever">

得到:
</node><node id="whatever">

这并不是为了手动解析 XML,而是在 XML 数据被工具解析之前准备好它。更具体地说,我使用 Hpricot (Ruby) 来解析 XML,不幸的是我们目前停留在 0.6.164 版本,所以......我不知道更新的版本,但是这个经常返回奇怪的节点(对象)仅包含空格和换行符。因此,想法是在将 XML 转换为 Hpricot 文档之前对其进行清理。替代解决方案表示赞赏。

一个测试示例: NoMethodError: undefined method `children' for "\n ":Hpricot::Text
这里有趣的部分不是 NoMethodError,因为这很好,但是 Hpricot::Text 元素只包含一个换行符和而已。

0 投票
3 回答
1918 浏览

html - Hpricot,从文档中获取所有文本

我刚刚开始学习 Ruby。很酷的语言,非常喜欢。

我正在使用非常方便的 Hpricot HTML 解析器。

我要做的是从页面中获取所有文本,不包括 HTML 标签。

例子:

我基本上只想抓取文本,所以我最终得到一个字符串,如下所示:

“这就是我要抢的,我也想抢这个文字”

这样做的最佳方法是什么?

干杯

伊夫

0 投票
2 回答
2601 浏览

ruby-on-rails - 您如何知道何时使用 XML 解析器以及何时使用 ActiveResource?

我尝试使用 ActiveResource 解析更像 HTML 文档的 Web 服务,但一直收到 404 错误。

我是否需要为此任务使用 XML 解析器而不是 ActiveResource?

我的猜测是 ActiveResource 仅在您使用来自另一个 Rails 应用程序的数据并且 XML 数据很容易转换为 Rails 模型时才有用。例如,如果 Web 服务是范围更广的 XML,如 HTML 文档或 RSS 提要,您希望使用像 hpricot 或 nokogiri 这样的解析器。它是否正确?

您如何知道何时使用 XML 解析器以及何时使用 ActiveResource?

0 投票
2 回答
1733 浏览

ruby - libxml-ruby 解析帮助

好吧,由于速度和 _why 的消失,从工作的 Hpricot 切换到 Libxml-ruby,看了 Nokogiri 片刻,但决定看看 Libxml-ruby 的速度和寿命。我一定遗漏了一些基本的东西,但我试图做的却是行不通,这是我的 XML 字符串:

完整的提要中大约有 150 个这样的条目。

我只想遍历 150 个条目,然后找出内容和属性,但我在 libxml-ruby 上玩得很开心,因为它与 Hpricot 一起工作得很好。

这个小片段显示我什至没有得到条目:

有任何想法吗?我查看了文档,找不到一个简单的 XML 文件,这里是 x,y,z 的示例。这应该很简单。

0 投票
1 回答
213 浏览

ruby - ruby noob:/usr/lib/ruby/1.8/rss/rss.rb:922:in `have_required_elements?':未定义的方法

抱歉,这可能是一个基本/愚蠢/菜鸟问题——我只是想调整一个现有的 Ruby 脚本——它可以在我的 Mac 上运行,但无法在 Ubuntu 9.04 上运行。

错误是这样的:

这是使用 Ruby 的 rss 位并尝试写出 RSS 文件。错误来自文件写入行:

这是基于 iPhone app review scaper 代码: link text

链接文本中抛出一些基本的 RSS 提要内容

提前感谢任何提示/指针。克里斯

0 投票
2 回答
193 浏览

ruby-on-rails - 如何在现有节点中插入 DOM 节点 a 特定字符索引(使用 Hpricot 或类似的 Ruby 库)

假设我有这个 HTML:

在“分数”一词之后插入(例如)锚标记的最佳方法是什么?注意:我想根据 DOM 操作(例如使用 Hpricot)而不是根据文本操作(例如,没有正则表达式)来执行此操作

0 投票
1 回答
227 浏览

html - 使用 Hpricot 在其父节点中查找节点的字符索引

假设我有以下 HTML:

我想用 Hpricot 解析这个:

找到<b>节点:

然后<b>在其父节点中获取节点的字符索引:

我该怎么做(即,character_index()我刚刚编写的函数的真实版本是什么)?