问题标签 [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 投票
2 回答
4118 浏览

ruby - 如何通过 CSS 而不是 XPath 选择具有文本内容的元素?

Nokogiri:如何通过匹配文本来选择节点? ”可以通过 XPath 做到这一点,但是,我正在寻找一种使用与元素文本匹配的 CSS 选择的方法。

PyQuery 和 PHPQuery 可以做到这一点。Ruby 没有 jQuery API 库吗?

0 投票
2 回答
1645 浏览

xpath - 从一组 xpath 中找到共同的祖先?

说我有

如何获得共同祖先?在这种情况下,span 将是“font, h1, b, div”的共同祖先将是“span”

0 投票
1 回答
760 浏览

ruby - 获得共同的 xpath 祖先节点?

可能重复:
从一组 xpath 中找到共同的祖先?

我正在使用 nokogiri。

我需要获取元素组的共同 xpath 祖先。

0 投票
2 回答
3195 浏览

xml - 获取 XSLT 当前节点,格式化为 XPath 查询?

我有以下代码块,可以获取树下节点的名称,如下所示:

section/page/subPage

但我希望能够将其归结为以下内容(只是弥补):

section[@id='someId']/page/subPage[@user='UserA']/@title

我从这些 StackOverflow 帖子之一中找到了以下代码:

p>

这给了我一条直接的道路,但我想在它上面运行更多的逻辑来使它包含@id(或相关属性),也许还有一些我现在想不到的东西。

做这个的最好方式是什么?

我已经检查了 EXSLT 函数,这可能有效,但也许你们已经用更好的方法解决了这个问题。

有任何想法吗?

如果有帮助,我正在使用 ruby​​ 的 nokogiri 来解析 xml/xslt。

非常感谢,兰斯

0 投票
4 回答
10298 浏览

html - 使用 Ruby 从 HTML 文档中剥离文本

有很多例子说明如何使用 Ruby 从文档中去除 HTML 标签,Hpricot 和 Nokogiri 有 inner_text 方法,可以轻松快速地删除所有 HTML。

我想做的是相反的,从 HTML 文档中删除所有文本,只留下标签及其属性。

我考虑循环将文档设置 inner_html 设置为 nil 但实际上你必须反向执行此操作,因为第一个元素(根)具有整个文档其余部分的 inner_html,所以理想情况下我必须从最里面的元素,并将 inner_html 设置为 nil,同时向上移动通过祖先。

有谁知道有效地做到这一点的巧妙小技巧?我在想也许正则表达式可能会这样做,但可能不如 HTML 标记器/解析器那样有效。

0 投票
3 回答
8979 浏览

xml - 使用 XSLT 转换 XML 并保留 CDATA(在 Ruby 中)

我正在尝试将具有以下内容的文档转换为另一个文档,使 CDATA 与第一个文档中的内容完全相同,但我还没有弄清楚如何使用 XSLT 保留 CDATA。

初始 XML:

最终的 XML:

我尝试过这样的事情,但没有运气,一切都变得混乱:

任何想法如何保存 CDATA?

谢谢!槊

使用红宝石/nokogiri

更新:这是可行的。

这会将所有 text() 节点包装在 CDATA 中,这可以满足我的需要,并且它将在文本中保留 html 标签。

0 投票
4 回答
10265 浏览

ruby - 在 Nokogiri 的所有标签之间抓取文本?

在 html 标签之间获取所有文本的最有效方法是什么?

一堆被html标签包围的文本。

0 投票
1 回答
181 浏览

ruby - 将通过 html 标签包围的每个文本放入一个数组中?

使用nokogiri,

这可以完成工作,但是,它将所有内容都放在一个平面文本中。

我需要通过 html 标签获取每个文本

并将它们放入数组中。[“文本”,“文本 3”]

推荐的操作是什么?

我想过做

doc.xpath("*").text

但不知道如何遍历这一切。

0 投票
2 回答
14744 浏览

ruby - 选择包含子节点内文本的父节点

基本上我想选择一个节点(div),它的子节点(h1,b,h3)包含指定的文本。

我期待,/html/div/ 不是 /html/div/h1

我在下面有这个,但不幸的是返回了孩子,而不是 div 的 xpath。

我期待,/html/div/ 不是 /html/div/h1

那么有没有办法简单地使用 xpath 语法来做到这一点?

0 投票
2 回答
7097 浏览

ruby - 将latin1字符串转换为utf8?

如何将包含 latin1 字符的字符串转换为 utf8?

该字符串是一个文档,由 open-uri 打开并包含这些特殊字符。

此致