2016-07-30 29 views
-2

你好,我有這些孤立的HTML代碼(如我輸入):解析HTML表和格式化了的文本

案例1:

<td class="C" width="10%"> 
    <a href="URL1" onclick="ValDobleSubmit()"> 
    String1 
     <span style="color: blue; font-weight:bold;"> 
      String2 
     </span> 
    </a> 
</td> 
<td class="C" width="15%"> 
    String3 
</td> 
<td class="t" align="left" width="15%"> 
    String4 
</td> 
<td class="t" align="left" width="10%"> 
    String5 
</td> 

案例2

<td class="C" width="10%"> 
    <a href="URL1" onclick="ValDobleSubmit()"> 
    String1 
    </a> 
</td> 
<td class="C" width="15%"> 
    String3 
</td> 
<td class="t" align="left" width="15%"> 
    String4 
</td> 
<td class="t" align="left" width="10%"> 
    String5 
</td> 

我想用bash shell腳本或PHP(控制檯)以便獲得此輸出:

  • 案例1:

String1String2 | URL1 | STRING3 |串,4 | STRING5

  • 案例2:

的String1 | URL1 | STRING3 |串,4 | STRING5

+0

請張貼一些你寫的代碼證明你努力解決這個問題。也看看是什麼讓[mcve] – sjsam

+0

對不起,我忘了提到我的努力。 我的輸入是在一個file.txt中,所以我嘗試了case1: cat file.txt | grep -v「<」| while read a;做echo $ a「|」;完成| sed':a; N; $!ba; s/\ n// g'| sed's/| * $ // g 我可以得到: String1 |字符串2 | STRING3 |串,4 | String5 – fermaf

+0

我有一個使用這個基本的解決方案,但問題是當我的輸入文件與幾個案件一起在同一個文件中。 – fermaf

回答

0
 $DOM = new DOMDocument; 
    $DOM->loadHTML($CaseSource); 
    $cells = $DOM->getElementsByTagName('td'); 
    foreach($cells as $cell){ 
$out[] = $cell->nodeValue; 
} 
+0

也可以使用strip_tags();轉義html標籤 –