问题标签 [nokogiri]

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 投票
3 回答
17265 浏览

xml - 如何将子节点添加到特定位置的节点?

我有一个节点,它有两个子节点:一个 HTML 文本和一个 HTML 元素。

在这种情况下,HTML 文本是:

和 HTML 元素:

然后我创建一个这样的节点:

现在,要将上述节点添加到主节点,我使用以下命令:

这会在末尾附加 span 节点。我怎样才能把它放在span_node所有孩子的面前?

0 投票
1 回答
691 浏览

xpath - Nokogiri 在之后/之前擦洗样式和脚本标签

我正在尝试将一堆 html 添加到顶部的现有节点集中。它大部分都有效,但样式标签和脚本标签的内容正在被清除。这就是我的意思:

但是如果我尝试显示这个,这就是我得到的:

它会清除脚本和样式标签之间的所有内容,并完全忽略 html 注释。任何想法如何避免这种情况?

0 投票
1 回答
2699 浏览

ruby - How to loop through an table and turn rows into objects using nokogiri

I want to use nokogiri to loop through a html and create an object corresponding to every row. I am able to define the root xpaths where I want the data to fill the object varibles comes from but I dont know how to group these as an object.

My code is below. I know it doesn't work but I dont know what direction to go to make it work.

require 'rubygems' require 'nokogiri'

doc = Nokogiri::HTML.parse(<<-HTML_END) " LV1LV2LV3 MV1MV2MV3 NV1NV2NV3 " HTML_END

class Post def initialize(v1, v2, v3 ) @v1 =v1 @v2 = v2 @v3 = v3 end

end

class PostList def initialize @posts = Array.new end

end

list = PostList.new

parent = doc.css('body').first

gets the contects of the row

parent.xpath("//div/table[@class='ipbtable']/tr" ).each do |a_tag|

k1 = "x" k2 = "x" k3 = "x"

a_tag.xpath("td[1]").each do |x_tag|

puts x_tag.content

end

list.append(Post.new(k1, k2, k3) )

end

0 投票
1 回答
11627 浏览

xml - 如何使用 nokogiri 解析 xml 文件并将结果放入新文件中?

我刚开始使用Nokogiri并有一个问题,希望你们能帮助我:

  1. 我需要解析一组 XML 文件(比如说 5 个文件)。
  2. 使用 XPATH 查找具有特定值的元素,例如 City = "London"。
  3. 创建一个新的 XML 文件,其中包含步骤 2 中先前 XPATH 查询的结果
0 投票
4 回答
1091 浏览

ruby - 最基本的 Nokogiri 程序失败——文档问题还是错误?

我决定尝试一下 Nokogiri,并直接从http://nokogiri.rubyforge.org/nokogiri/Nokogiri.html复制以下程序(仅添加require 'rubygems'I_KNOW_I_AM_USING_AN_OLD_AND_BUGGY_VERSION_OF_LIBXML2常量):

它没有返回任何结果。但是当我改变

该程序按预期工作。请注意,唯一的区别是在行尾添加了 .read。我自己永远也想不通,因为几乎每一点示例代码都离开了 .read。具有讽刺意味的是,包含它的一个地方是 Nokogiri 开发人员之一的帖子(在http://tenderlovemaking.com/2008/11/18/underpant-free-excitement)。API 中的某些内容是否发生了变化?我错过了什么?

我正在使用 Nokogiri 1.3.2。

谢谢你。

0 投票
2 回答
5828 浏览

ruby - 如何让 Nokogiri 解析并返回 XML 文档?

这是一些奇怪的示例:

运行此返回:

没有read返回的 XML,还有 HTML?该网页被定义为“XHTML 过渡”,所以起初我认为 Nokogiri 一定是从流中读取 OpenURI 的“内容类型”,但返回'text/html'

这是服务器返回的内容。所以,现在我想弄清楚为什么 Nokogiri 返回两个不同的值。它似乎没有解析文本并使用启发式方法来确定内容是 HTML 还是 XML。

该页面指向的 ATOM 提要也发生了同样的事情:

我需要能够在事先不知道它是什么的情况下解析页面,无论是 HTML 还是提要(RSS 或 ATOM),并可靠地确定它是什么。我让 Nokogiri 解析 HTML 或 XML 提要文件的正文,但我看到了这些不一致的结果。

我以为我可以编写一些测试来确定类型,但后来我遇到了 xpaths 没有找到元素,但常规搜索工作:

我认为 xpaths 可以与 XML 一起使用,但结果看起来也不可信。

这些测试都是在我的 Ubuntu 机器上完成的,但我在我的 Macbook Pro 上看到了相同的行为。我很想知道我做错了什么,但我还没有看到一个解析和搜索的例子,它给了我一致的结果。谁能告诉我我的方式的错误?

0 投票
2 回答
2803 浏览

html - 使用 ruby​​ 和 nokogiri 使用 HTML 注释作为标记来解析 HTML

如何使用 ruby​​ 从包含这些行的表中提取信息?是否可以使用 nokogiri 检测评论?

0 投票
1 回答
275 浏览

ruby - 使用 ruby​​ 和 nokogiri 根据部分 URL 选择 ahrefs

我有一个包含我要提取的 ahref 链接的文档。我想要的链接可以通过它们链接到的部分 url 来识别。还有其他类似的链接我想丢弃。

我想要的链接的网址是格式

http://www.xxxxxxxxxxxxxxxxxxx.com/index.php?showtopic=44&hl=

我想搜索包含 h1= 的链接。这可能吗?

0 投票
8 回答
47356 浏览

xml - 将 Nokogiri 文档转换为 Ruby 哈希

有没有一种简单的方法可以将 Nokogiri XML 文档转换为 Hash?

类似 Rails 的东西Hash.from_xml

0 投票
3 回答
6449 浏览

ruby-on-rails - 使用 Nokogiri 查找 id 包括 [] 的标签

我有一个 html 元素,例如:

我想通过 id 搜索这个元素,但似乎 nokogiri 被 [] 弄糊涂了。我正在努力:

但无济于事。