Nokogiri-适用于XML,不适用于HTML

| 我在让Nokogiri正常工作时遇到问题。我将1.4.4版本与Ruby 1.9.2结合使用。 我同时安装了libxml2 libxslt和最新版本。当我使用XML运行Ruby脚本时,效果很好。
require \'nokogiri\'

doc = Nokogiri::XML(File.open(\"test.xml\"))
doc = doc.css(\"name\").each do |node|
    puts node.text
end
进入CL,运行
ruby test.rb
,返回
Name 1
Name 2
Name 3
人群变得疯狂。 我调整了一些东西,对代码做了一些调整...
require \'nokogiri\'
require \'open-uri\'

doc = Nokogiri::HTML(open(\"http://domain.tld\"))
doc = doc.css(\"p\").each do |node|
    puts node.text
end
回到CL,
ruby test.rb
,返回...什么都没有!只是一个新的空行。 是否有任何理由可以使用XML文件而不使用HTML?     
已邀请:
要调试此类问题,我们需要您提供更多信息。由于您没有提供有效的网址,并且由于我们知道Nokogiri可以很好地解决此类问题,因此调试工作落在您身上。 这是我要测试的内容: 在IRB中: 这样做时,您会得到输出吗?output5ѭ 如果那返回一个有效的文档,那么将上一个open语句包装在
Nokogiri::HTML(...)
中会得到什么。那也需要保留前一行中的ѭ7,,因此Nokogiri正在接收页面的正文,而不是IO流。 试试上面的#2,但是去掉
.read
。那可以说明Nokogiri读取IO流是否存在问题,尽管我一直以来都在使用它,我对此表示严重怀疑。到那时,我怀疑您的系统有问题。 如果您在#2和#3中获取文档,则问题可能出在您的访问器中。我怀疑您要查找的内容不存在。 如果存在,则在Nokogiri解析文档后检查ѭ9的值。可能是在文档中发现错误,如果有的话,这些错误将被捕获在那里。     

要回复问题请先登录注册