我试图遍历每个元素中的元素,但下面的内部循环有问题。在我看来,xpath模式“*/td”没有返回任何结果。我期待看到打印到标准输出的标签内的数据。我正在使用nokogiri。我将其粘贴到我的Rails控制台中:require'nokogiri'f=File.open("public/index.html")doc=Nokogiri::HTML(f)f.closedoc.xpath('//*[@id="WhoIsOnDutyTableLevel4"]/tbody/tr').eachdo|row|puts"row="+row.to_srow.xpath('*/td').eachdo|td|
给定一个元素作为上下文,我想选择前面的同级元素并检查它是否具有特定名称。需要注意的是,如果中间有一个包含非空白内容的文本节点,我不想选择它。例如,给定这个XML文档......a1a2ba3a4a5……然后:对于“a1”,应该没有匹配项(没有紧跟在它前面的兄弟元素)对于“a2”,则应匹配“a1”(没有中间文本节点)对于“a3”,应该没有匹配项(中间有一个包含非空白内容的文本节点)对于“a4”,则应匹配“a3”(中间文本节点仅为空格)“a5”应该没有匹配项(前面的兄弟元素不是)。我可以检查前面的兄弟是否是与preceding-sibling::*[1][name()="a"]但是,我不知
下一句有什么区别?frame.span(:text=>'Patient')frame.span(:xpath=>".//span[text()='Patient']")第一句很好用,但是第二句用xpath我找不到页面上的元素。 最佳答案 总结区别在于空间的归一化。如果您设置$DEBUG=true,您将看到Watir将.span(:text=>'Patient')转换为XPath:.//span[normalize-space()='Patient']因此,当文本节点具有前导/尾随空格时会出现不同的结果。示例例如,在下面的HTML中,
我有一个基本XML,需要通过Ruby脚本进行修改。XML如下所示:SoandSo我能够打印的值:require'rexml/document'includeREXMLxmlfile=File.new("some.xml")xmldoc=Document.new(xmlfile)name=XPath.first(xmldoc,"/config/name")pname.text#=>Soandso我想做的是通过其他方式更改值(“某某”)。我似乎找不到该用例的任何示例(在文档中或其他地方)。甚至可以在Ruby1.9.3中实现吗? 最佳答案
我想删除所有XHTML段落末尾的空白。我将Ruby与REXML库结合使用。假设我在一个有效的XHTML文件中有以下内容:helloworldaHithereTheEnd我想以此结束:helloworldaHithereTheEnd所以我想我可以使用XPath来获取我想要的文本节点,然后剪裁文本,这样我就可以得到我想要的结果(上一个)。我从以下XPath开始://root/p/child::text()当然,这里的问题是它返回所有p-tags的子节点的所有文本节点。这是哪个:'hello''a''Hithere''TheEnd'尝试以下XPath给我最后一段的最后一个文本节点,而不是作为
我需要解析网页中的表格。我在使用Ruby和Nokogiri之前已经这样做了,但这次我的方法不起作用。这就是我正在做的:response=RestClient.get"http://www.webpage.com?page=0"doc=Nokogiri::HTML(response.body,nil,'utf-8')doc.remove_namespaces!table=doc.xpath(".//*[@id='contsinderecha']/form/table/tbody/tr[4]/td/table/tbody/tr[5]/td/table")table只是一个空数组。响应很好,
我正在尝试使用rubyxpath和nokogiri获取写入HTML表中的“cell4”值,如下所示:Headingparagraph.Tworowsandthreecolumns:cell1cell2cell3cell4我有以下简单代码,但它带来了[]。这个问题一定很简单,但在谷歌上找不到任何合适的东西#!/usr/bin/ruby-wrequire'rubygems'require'nokogiri'page1=Nokogiri::HTML('test_simple.html')a=page1.xpath("//html/body/table/tr[2]/td[2]")paxpa
我想单击我使用xpath(nokogiri)选择的Mechanize链接。这怎么可能?next_page=page.search"//div[@class='grid-dataset-pager']/span[@class='currentPage']/following-sibling::a[starts-with(@class,'page')][1]"next_page.click问题是nokogiri元素没有点击功能。我无法读取href(URL)并发送获取请求,因为该链接定义了onclick函数(没有href属性)。如果那不可能,有什么替代方案? 最佳
对于类似项目的博客,我想从Markdown生成的html片段中获取前几段、标题、列表或字符范围内的任何内容,以显示为摘要。如果我有helloworldLetssaytheseare100charssomeblabla,40charssomeothertext假设,我想用前150个字符内的文本进行总结(不必过于精确,我可以只获取前150个字符,包括标签并继续这样做,但可能会在可能更难处理的尾部……),它应该给我h1、p和ul,但不是最后的p(将被截断)。如果第一个元素应该超过150个字符,我会采用完整的第一个元素。我怎么能得到这个?使用XPath还是正则表达式?我对此有点没有想法....
我发现Nokogiri在处理xml方面非常强大,但我遇到了一个特例我正在尝试像这样在xml文件中搜索节点SqlServerStaging当我做一个xml=File.new(webconfig,"r")doc=Nokogiri::XML(xml.read)nodes=doc.search("//Configuration.Store")xml.close我有空节点。我错过了什么吗?我试过了nodes=doc.search("//Configuration\.Store")仍然没有运气。更新:我附上了整个xml文件再次更新了xml:我的错误,它确实有一个namaspace