Tag: dom

如何将一组放在中

我想通过使用以下Ruby代码和Nokogiri找到一种方法来获取HTML结果(下面进一步提到): require ‘rubygems’ require ‘nokogiri’ value = Nokogiri::HTML.parse(<<-HTML_END) " A B Bla C D E ” HTML_END # The selected-array is given by the application. # It consists of a sorted array with all ids of # that need to be enclosed by the selected = [“2″,”3″,”4”] first_p = selected.first last_p = selected.last # # […]

如何使用Ruby on Rails操作DOM

正如标题所说,我有一些DOM操作任务。 例如,我想: – 找到所有具有蓝色的H1元素。 – 找到所有大小为12px的文本。 – 等.. 我怎么能用Rails做到这一点? 谢谢.. :) 更新 我一直在研究如何根据本文提取网页内容 – > http://www.springerlink.com/index/A65708XMUR9KN9EA.pdf 该步骤的摘要是: 获取我想要提取的url(单个网页) 根据一些视觉规则从网页中获取一些元素(例如:抓住所有具有蓝色的H1 ) 用我的算法处理元素 将结果保存到我的数据库中。 -对不起,我的英语不好-

Capybara无法识别动态添加的DOM元素?

在使用Capybara和Selenium时,我似乎无法测试使用jQuery进行的光滑javascript操作。 预期的行为是当用户单击链接“添加资源”时动态生成表单。 Capybara将能够单击该链接,但无法识别新的表单元素(即“resource [name]”)。 有没有办法为Capybara重新加载DOM,或者我还没有学到这个gem的某些元素? 提前致谢! == ==编辑 目前我正在尝试与selenium的运气: wait_for_element 方法。 == ==编辑 在尝试执行以下操作时,我一直在为“nill类”获取“未定义的方法’wait_for_element`”: @selenium.wait_for_element 似乎那个特定的方法,或者也许是wait_for ,一个巨大的选择器访问我期望的DOM元素是正确的行动方案,但现在试图让selenium会话开始成为一个巨大的麻烦。

更改Rails中的当前选项卡

我在应用程序顶部有一个选项卡列表,我在application.html.erb的一般布局中包含这些选项卡。 它们看起来像这样: “GET”%> 当我点击该页面时,我想将所选标签更改为“当前标签”。 因此,当我单击编辑配置文件并加载编辑配置文件页面时,选项卡应如下所示: “GET”%> 除了将javascript添加到显示的页面之外,有没有办法做到这一点? 或者,如果有尽可能以DRYest方式执行此操作的最佳做​​法。 谢谢

根据DOM标准下载链接的递归Web下载

MSDN是一个庞大的分层文档站点。 更准确地说,内容是以分层方式组织的,但URL不是。 URL空间是平的,使得它看起来像是在同一目录中。 (实际上,可能没有目录;我想事情是从其他数据库出来的;但这在这里并不重要。) 因此,如果你想下载部分MSDN,比如说NMake手册 ,你不能只是递归地下载给定目录下的所有内容。 因为那将是MSDN的全部。 你的硬盘和带宽太多了。 但是你可以编写一个查看DOM(HTML)的脚本,然后只跟踪并下载文档某些导航部分中包含的那些链接,比如CSS class属性toc_children和toc_siblings ,但不包括toc_parent 。 你需要的是一些允许你说的下载器: $webclient->add_links( $xpath_expression ); # or $webclient->add_links( $css_selector ); 使用Perl,LWP和XML :: LibXML(HTML解析器)拼凑一些东西应该不会太难,但也许你知道一个允许你这样做的工具,所以我不需要重新发明它。 它不一定是Perl,任何其他语言都可以,也是一个现成的程序,具有这项工作所需的灵活性。

HTML解析为Ruby中的DOM

Ruby中是否有任何HTML解析器将HTML文档读入DOM树并将HTML标记表示为DOM元素? 我知道Nokogiri,但它没有将HTML解析为DOM树。

如何使用Nokogiri基于select标签的内容获得select标签的“价值”

如何使用Nokogiri根据select标签的内容(即选项包装的文本)获取select标签的’value’属性的内容? 例如,给定以下HTML: First Option – 4 Second Option – 5 Third Option – 6 我希望能够指定一个字符串(例如’First Option’)并返回’value’属性的内容(例如’1’)。 我已经能够实现与此相反(根据select标签的’value’属性获取select标签的内容),但这不是我需要做的。

Nokogiri相当于jQuery nearest()方法,用于在树中查找第一个匹配的祖先

jQuery有一个可爱的,有点错误的名为nearest()的方法,它在DOM树中寻找匹配的元素。 例如,如果我有这个HTML: Yay 假设element设置为 ,那么我可以像这样计算src的值: element.closest(‘table’)[‘src’] 如果缺少表元素或其src属性,那将彻底返回“undefined”。 在Javascriptland中习惯了这个,我很想在Rubyland中找到与Nokogiri相同的东西,但是我能够想出的最接近的是使用祖先()的这种明显不优雅的黑客攻击: ancestors = element.ancestors(‘table’) src = ancestors.any? ? first[‘src’] : nil 需要三元组,因为如果在空数组上调用,则返回nil。 好主意?

如何使用Nokogiri导航DOM

我正在尝试填充变量parent_element_h1和parent_element_h2 。 谁能帮助我使用Nokogiri将我需要的信息输入这些变量? require ‘rubygems’ require ‘nokogiri’ value = Nokogiri::HTML.parse(<<-HTML_END) " A Foo B C Bar D E F ” HTML_END parent = value.css(‘body’).first # start_here is given: A Nokogiri::XML::Element of the with the id ‘X2 start_here = parent.at(‘div.block#X2’) # this should be a Nokogiri::XML::Element of the nearest, previous h1. # in this example it’s […]

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

我有一个节点有两个孩子:HTML文本和HTML元素。 Installation on server¶ 在这种情况下,HTML文本是: Installation on server 和HTML元素: anchor; 然后我创建一个这样的节点: span_node = Nokogiri::HTML::Node.new(‘span’,doc) span_node[‘class’] = ‘edit-section’ link_node = Nokogiri::HTML::Node.new(‘a’,doc) link_node[‘href’] = “/wiki/#{page_id}/#{@page.title}/edit?section=#{section_index}” link_node[‘class’] = ‘icon icon-edit’ link_node.content = ‘mylink’ span_node.add_child(link_node) 现在,要将上述节点添加到主节点,我使用以下内容: node.add_child(span_node) 这会在末尾附加span节点。 如何将span_node放在所有孩子面前?