通过NodeJS运行Javascript代码

时间:2012-11-02 13:07:56

标签: javascript xml node.js dom

我需要通过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,我在commant提示符下运行它

node test.js

但它会出现以下错误:

ReferenceError: DOMParser is not defined

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

2 个答案:

答案 0 :(得分:3)

Node.js与浏览器分开运行,因此您无法获得任何浏览器提供的功能。 DOMParser是一个浏览器提供的类,由于Node.js在服务器上运行,因此没有浏览器提供它。如果您想与文档进行通信,则必须使用其他方法。

答案 1 :(得分:2)

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

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";
    }
});