Я написал скрипт для анализа необходимого кода в файлах HTML, которые загружаются в наше приложение. На OS X этот процесс работает нормально. Однако, когда я загружаю на наш тестовый сервер, это не так. Когда я захожу в консоль на тестовом сервере и пытаюсь проанализировать файл, Нокогири не видит структуру - каждый раз, когда я получаю одну строку вывода вместо всей структуры документа. Остальная часть моего сценария не выполняется, потому что Нокогири не просматривает документ. Нужна помощь в разрешении проблемы.
Вот необходимый код, который я использую, чтобы открыть файл и передать его в Nokogiri:
html = Nokogiri::HTML(File.open("index.html", "r"))
Вот что равен html:
#<Nokogiri::HTML::Document:0x10d9bbf0 name="document" children=[#<Nokogiri::XML::DTD:0x10d9b81c name="html">]>
В OS X я получаю все дерево, как и ожидалось.
Вот содержимое файла index.html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<link rel="stylesheet" href="zero.css" type="text/css" charset="utf-8" />
</head>
<body class="fullpage-vert" onunload="javascript:clearInterval(audioLoop);">
<div id="container">
<div id="danceHolder">
<img id="danceVid" src="1-1.jpg" width="320" height="480" alt="" />
</div>
<div id="introHolder">
<img id="introVid" src="0-1.jpg" width="320" height="480" alt="" />
<div id="ctabg"></div>
<div id="cta1"></div>
<div id="cta2"></div>
<div id="cta3"></div>
<div id="phone"></div>
<div id="logo"></div>
</div>
</div>
<a href="mmbridge:*">bridge test</a>
<frameset cols="25%,75%">
<frame src="frame_a.htm" />
<frame src="frame_b.htm" />
</frameset>
</body>
</html>
Например, когда я пытаюсь найти набор фреймов, я ничего не получаю:
html.css("frameset").size
0
Я знаю, что у Nokogiri есть проблемы с установленной по умолчанию версией Libxml2, установленной в CentOS (2.6.2), но я следовал инструкциям, чтобы установить ее на новую версию (2.7.8). Вот вывод для nokogiri -v:
# Nokogiri (1.5.0)
---
warnings: []
nokogiri: 1.5.0
ruby:
version: 1.9.2
platform: x86_64-linux
description: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
engine: ruby
libxml:
binding: extension
compiled: 2.7.8
loaded: 2.7.8
Кто-нибудь еще видел подобное поведение?