2

我需要有关通过 NodeJS 运行 javascript 代码的帮助。到目前为止,我有以下代码;

txt="<bookstore><book>";
txt=txt+"<title>Everyday Italian</title>";
txt=txt+"<author>Giada De Laurentiis</author>";
txt=txt+"<year>2005</year>";
txt=txt+"</book></bookstore>";

parser=new DOMParser();
xmlDoc=parser.parseFromString(txt,"text/xml");
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Diffrent Title";

我将它作为 test.js 并在命令提示符下运行它

node test.js

但它给出了以下错误:

ReferenceError: DOMParser is not defined

我在这里做错了什么。任何人都可以帮忙吗?

4

2 回答 2

3

Node.js 独立于浏览器运行,因此您不会获得任何浏览器提供的功能。DOMParser是浏览器提供的类,由于 Node.js 在服务器上运行,因此没有浏览器提供它。如果您想与您的文档进行交流,您将不得不使用另一种方法。

于 2012-11-02T13:10:17.533 回答
2

NodeJS 不在浏览器中运行,因此 DOMParser 不可用。但是,您可以使用jsdom。它由nodejs提供。在节点包管理器中可用。

var jsdom = require("jsdom");
jsdom.env({
    html: txt,
    scripts: ["http://code.jquery.com/jquery.js"],
    done: function(errors, window) {
        x = window.getElementsByTagName("title")[0].childNodes[0];
        x.nodeValue="Diffrent Title";
    }
});
于 2012-11-02T13:14:40.107 回答