2014-07-07 2 views
1

Я пытаюсь разобрать XML с помощью phantomjs для следующего файла, documentpreviewer1.jsОшибка: Не удается найти модуль «libxmljs»

var webPage = require('webpage'); 
var page = webPage.create(); 

var url = "http://xxx/sitemap.xml"; 

page.open(url, function(status){ 
    if(status != 'success'){ 
       console.log('Unable to access cfc'); 
    } 
    else 
    { 
       var xml = page.content; 
       var libxmljs = require("libxmljs"); 
       var xmlDoc = libxmljs.parseXml(xml); 

       var url1 = xmlDoc.get('//urlset/url[0]/loc'); 
       console.log(url1); 
    } 
}); 

когда я запускаю приведенный выше код, я получаю следующую ошибку

CMD sudo phantomjs documentpreivewer1.js

Error: Cannot find module 'libxmljs' 

    phantomjs://bootstrap.js:289 
    phantomjs://bootstrap.js:254 in require 
    documentpreivewer1.js:13 
    :/modules/webpage.js:281 

ответ

1

libxmljs является модулем node.js. Хотя phantomjs можно установить через npm (не обязательно), это не модуль node.js. Он не использует встроенный модуль с node.js (fs выглядит одинаково, но не равен node.js fs).

Вы можете использовать некоторые Node.js модулей в phantomjs (см Use a node module from casperjs на связанный с этим вопрос), но это не кажется, что вы могли бы использовать libxmljs в phantomjs, потому что это зависит от узла креплений, который использует fs и path модулей , Вам придется изменить реализацию, чтобы все зависимости могли быть выражены с помощью возможностей phantomjs.

Альтернативой может быть использование phantom-node или spookyjs для модуля casperjs node.js.

Смежные вопросы