Ошибка: не удается найти модуль 'libxmljs'
Я пытаюсь разобрать xml, используя phantomjs для следующего файла, documentpreviewer1.js
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 (см. " Использование модуля узла из casperjs" для связанного вопроса), но не похоже, что вы можете использовать libxmljs в phantomjs, потому что это зависит от привязки узла, которая использует fs
а также path
модули. Вам придется изменить реализацию, чтобы все зависимости могли быть выражены с помощью возможностей phantomjs.
Альтернативой может быть использование фантомного узла или spookyjs для модуля casperjs node.js.