2017-03-31 120 views
3

我正在开发一个页面,该页面读取另一个页面的源,并且需要从该页面中提取某些信息。我现在有项目用数据来捕获实时数据源,但是我不知道如何将这个字符串转换为文档。将GET HTML响应转换为文档

我使用文档的基本原理是我需要使用getElementById等来获得这些项目的价值。

我试过了什么?

  1. 将HTML分配给页面上的不可见div。这种作品虽然没有呈现整个HTML字符串,并且提供了这个页面的“简短”呈现。

  2. 手动找到子字符串。你可以想象这是一种糟糕的做事方式,并提供非常不可靠的结果。

  3. 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); 
    }, 
+0

您是否尝试过使用Cheerio解析HTML字符串? –

+0

@PatrickHund然而我没有问题在于这个页面是一个独立的页面,它将在本地分发。 – basic

+0

这是我的理解你有一个字符串与HTML代码,你想解析和运行查询提取数据。这正是Cheerio的 –

回答

-2

另一个(可能更好)选项,是使用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' 
+0

问题标记为'jquery',它们使用'.ajax'和'.html()'。很确定他们知道jQuery。 –

+0

@MikeMcCaughan对,我得知他们已经在使用jQuery。我指出的是,他们可以进一步使用它来解决他们的问题。您可以将HTML转换为jQuery对象,然后直接在内存中查询,而不是尝试将HTML放入浏览器的文档中,以便查询。更好的性能,并没有问题引入页面,因为它正在浏览器中查看。 – Trevor