将GET HTML响应转换为文档
我正在开发一个页面,该页面读取另一个页面的源,并且需要从该页面中提取某些信息。我现在有项目用数据来捕获实时数据源,但是我不知道如何将这个字符串转换为文档。将GET HTML响应转换为文档
我使用文档的基本原理是我需要使用getElementById
等来获得这些项目的价值。
我试过了什么?
将HTML分配给页面上的不可见div。这种作品虽然没有呈现整个HTML字符串,并且提供了这个页面的“简短”呈现。
手动找到子字符串。你可以想象这是一种糟糕的做事方式,并提供非常不可靠的结果。
DOM解析器转换文档,然后查询它,但失败悲惨。
任何帮助都会被认真的赞赏。
相关代码:
$.ajax({
method: "GET",
dataType: '',
crossDomain: true,
xhrFields: {
withCredentials: true
},
success: function(res) {
//shows the entire source just fine.
console.log("Value of RES: " + res);
bootbox.hideAll();
//shows a "truncated" copy of the source
alert(res);
$("#hiddendiv").html(x);
var name = document.findElementById("myitem");
alert(name);
},
上创建文档隐藏的iframe。然后将该IFRAME的内容设置为您要查询的HTML。当您执行查询时,将该IFRAME与您的javascript对准。了解如何使用How can I access iframe elements with Javascript?。
另一个(可能更好)选项,是使用jQuery。 jQuery允许你创建HTML,操作它,并在内存中对它进行查询。在jQuery中查询DOM元素甚至比在纯javascript中更容易。请参阅:http://jquery.com/。
//Get a jQuery object representing your HTML
var $html = $("<div><span id='label'></span></div>");
//Query against it
var $label = $html.find("#label"); //finds the span with and id of 'label'
问题标记为'jquery',它们使用'.ajax'和'.html()'。很确定他们知道jQuery。 –
@MikeMcCaughan对,我得知他们已经在使用jQuery。我指出的是,他们可以进一步使用它来解决他们的问题。您可以将HTML转换为jQuery对象,然后直接在内存中查询,而不是尝试将HTML放入浏览器的文档中,以便查询。更好的性能,并没有问题引入页面,因为它正在浏览器中查看。 – Trevor
您是否尝试过使用Cheerio解析HTML字符串? –
@PatrickHund然而我没有问题在于这个页面是一个独立的页面,它将在本地分发。 – basic
这是我的理解你有一个字符串与HTML代码,你想解析和运行查询提取数据。这正是Cheerio的 –