尝试在我的js代码中使用DOMParser时遇到问题。在我的代码中,我通过xmlhttp.responseText
soap响应检索了一个xml文件。我希望能够以JSON格式访问其元素,因此我的代码如下所示:
var xml = new DOMParser();
xml = xml.parseFromString(xmlhttp.responseText, 'text/xml');
var result = xmlToJson(xml);
我收到此错误消息:ReferenceError:未定义DOMParser
编辑:此链接对我不起作用,因为我的JavaScript不在HTML页面中,因为它是一个node.js文件。
NodeJS本身不提供许多浏览器功能,例如DOM操作或XHR,因为这不是访问DOM的典型服务器任务-您必须使用外部库来执行此操作。
DOM的能力在很大程度上取决于库,以下是您可以使用的主要工具的快速比较:
jsdom
:实现DOM级别4,这是最新的DOM标准,因此您可以在现代浏览器中执行的所有操作都可以在jsdom
: const jsdom = require("jsdom");
const dom = new jsdom.JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
dom.window.document.querySelector("p").textContent; // 'Hello world'
htmlparser2
:相同,但以更复杂的API为代价,具有增强的性能和灵活性: const htmlparser = require("htmlparser2");
const parser = new htmlparser.Parser({
onopentag: (name, attrib) => {
if (name=='p') console.log('a paragraph element is opening');
}
}, {decodeEntities: true});
parser.write(`<!DOCTYPE html><p>Hello world</p>`);
parser.end();
// console output: 'a paragraph element is opening'
cheerio
:基于HTML DOM解析的jQuery实现htmlparser2
: const cheerio = require('cheerio');
const $ = cheerio.load(`<!DOCTYPE html><p>Hello world</p>`);
$('p').text('Bye moon');
$.html(); // '<!DOCTYPE html><p>Bye moon</p>'
xmldom
:完全实现DOM级别2,部分实现DOM级别3。与HTML以及XML一起使用
dom-parser
:基于正则表达式的DOM解析器,它实现了一些DOM方法,例如getElementById
。由于用正则表达式解析HTML是一个非常糟糕的主意,因此我不建议将其用于生产。
我有以下代码片段: 这将给出错误:
问题内容: 我在该领域做了一些谷歌搜索,发现了很多有关让Jenkins理解boost.test的XML输出格式的讨论,但是没有规范的参考。 有人说我们只需要使用XLST来转换XML格式,另一些人则认为XML在此之前需要进行一些修改有人拥有XSL来将Boost.TestXML日志转换为可显示的格式吗?)。有些人建议xUnit插件可以原生理解boost.test XML格式,另一些人则认为它不能 因为
我试图找出我的每个同事正在处理多少个客户端,然后将用于其他计算。我的电子表格中有一列是每个同事的姓名首字母,用逗号分隔(这是我无法控制的),目前我可以点击并拖动公式 < code > = COUNTIF(SPLIT($B2,“,”,“name here”), 效果很好。然而,我需要把它转换成一个数组公式,这样做一切都会中断。出现的情况是,COUNTIF正在通过SPLIT(array,“,”)创建的
问题内容: 因此,我一直在为这个(应该是)简单的练习而绞尽脑汁,以使该程序将日期字符串转换为对象,对其进行格式化,并在完成后将其作为字符串再次返回。 这是程序的最后一点,它从文件中获取一小段文本,将其分解为单独的记录,然后将记录分解为单独的数据并将它们分配给个人对象。 我已经在多个位置检查了该代码,并且该代码完全执行了应该执行的操作,直到调用了format函数(该函数抛出)为止。为对象分配了应该分
问题内容: 我想在目录中获取具有特定扩展名的文件列表。在中,我看到了可以做到这一点的方法。 由于我需要特定的扩展名,因此我创建了一个。但是,当我与此一起使用时,出现编译错误。我以为自以来,我应该能够做到这一点。代码如下: 最后一行显示编译错误: 类型的方法不适用于类型的参数 我正在尝试使用,不是。为何编译器无法识别这一点? 如果我编写自己的扩展筛选器,则此方法有效。我宁愿使用而不愿自己写。我究竟做
问题内容: 我正在尝试在我的watchKit应用中使用firebase数据库。我已经在我的iPhone应用程序上开发了此功能,但是发现在我的Watch应用程序上很难做到这一点。当我尝试将firebase导入watch应用程序的VC类中时,它正在创建error 。 可以在Watch app中使用Firebase吗? 问题答案: 可悲的是,没有支持,并由于这样的事实,有没有支持在这些版本中,并高度依赖