2014-10-01 108 views
0

我在本地系統中有一些(xyz)html文件,它有一些整數值。 我創建了一個具有這些文件主要摘要的(abc)html文件。 我想在我的HTML文件中顯示該整數值。我如何解析通過xyz html文件並存儲到我的abc html文件中?從一個html文件到另一個html文件的值

<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"> 
<tr> 
<th>Files</th><th>Errors</th> 
</tr> 
<tr class="a"> 
<td>225</td><td>2294</td> 
</tr> 
</table> 

這是一個內容我在我的某某HTML文件..我需要值225和2294,從這裏提取。

+2

我因此未理解您的問題 – doniyor 2014-10-01 07:32:14

+2

的東西你必須做一個Ajax請求,但我認爲這是更好地使用JSON文件之類的東西,而不是HTML,如果它只包含一個整數 – 2014-10-01 07:34:18

+0

綁定數據...然後你可以設置/獲取/重新使用數據,而無需解析它 – nirajkumar 2014-10-01 07:37:34

回答

2

您可以從您希望顯示值的地方發出ajax請求。通過解析HTML,你可以得到特定領域

$.ajax({ 
    url: "http://test.com/page1.html", 
    type: "GET", 
    dataType: "html", 
    success: function(data) { 
     var html = $.parseHTML(data); 
     var first = $(html).closest('.log').find('.a').find('td:eq(0)').html(); 
     var second = $(html).closest('.log').find('.a').find('td:eq(1)').html(); 

     alert(first+" "+ second); 
    } 
}); 

值請參見解析HTML的Sample DEMO,只要你想

+0

嗨Manwal,thnx但問題是我無法編輯這些文件,因爲它們在後端執行後由服務器生成。我只能訪問解析這些文件。我只想從那裏讀取值 – jasmeet 2014-10-01 07:50:53

+0

沒問題@ jasmeet你不必編輯它們就可以解析它。您可以檢查該值的存在位置。你可以提供一些例子,在HTML中的價值?像' your_value'。 – Manwal 2014-10-01 09:05:53

+0

我已經在我的問題中添加了上面的html代碼。 請參閱。 – jasmeet 2014-10-01 09:11:29

0

如果你正在尋找解析你的HTML代碼,你可以做到這一點與幾個服務器 - 側腳本語言和JavaScript。

下面是與JS的解決方案:

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <script type="text/javascript"> 
      function loadPage(href){ 
       var xmlhttp = new XMLHttpRequest(); 
       xmlhttp.open("GET", href, false); 
       xmlhttp.send(); 
       return xmlhttp.responseText; 
      } 
      function parseHTML(url){ 
       var my_arr = []; 
       var el = document.createElement('div'); 
       el.innerHTML = loadPage(url); 
       var table_row = el.document.getElementsByClassName("a"); 
       for(var i=0; i<x.length; i++){ 
        var new_arr = new Array(); 
        my_arr.push(new_arr); 
        var r = x[i].getElementsByTagName('td'); 
        for(var j=0; j<r.length; j++){ 
         var new_val = r[j].innerHTML; 
         my_arr[i].push(new_val); 
        } 
       } 
       return my_arr; 
      } 
     </script> 
    </head> 

    <body onload="parseHTML('my_url_path');"> 

    </body> 

</html> 

下面是用PHP和SimpleHTMLDOM一個解決方案:

<?php 
    $str = '<table class="log" border="0" cellpadding="5" cellspacing="2" width="100%"><tr><th>Files</th><th>Errors</th></tr><tr class="a"><td>225</td><td>2294</td></tr></table>'; 
    $html = new simple_html_dom(); 
    // Load from a string 
    $html->load($str); 

    $arr = array(); 
    $iterator = 0; 
    // Loop over all the <tr> with a class ".a" 
    $table_rows = $html->find("tr.a"); 
    foreach($table_rows as $tr){ 
     $arr[$iterator] = array(); 
     // Loop over all the <td> inside a <tr> with a class ".a" 
     $table_divisions = $tr->find("td"); 
     foreach($table_divisions as $td){ 
      $arr[$iterator][] = $td->innertext; 
     } 
     $iterator++; 
    } 
?> 

您需要下載庫:

http://simplehtmldom.sourceforge.net/manual.htm

http://sourceforge.net/projects/simplehtmldom/files/

請記住,你需要PHP 5.0+

相關問題