2017-03-31 91 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