<?php
$originalFilename = './test.html';
// raw HTML input
$originalHTMLContent = '<!DOCTYPE html>
<html>
<head>
<title>Asdasd</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div>
<table id="starwars-table">
<thead>
<tr>
<th>Test table header 1</th>
<th>Test table header 2</th>
<th>Test table header 3</th>
<th>Test table header 4</th>
</tr>
</thead>
<tbody>
<tr>
<td>TR-25-A</td>
<td>TR-25-B</td>
<td>2-2-SA</td>
<td>2-2-QWE</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>';
$newFilename = './test_MODIFIED.html';
$dom = new DOMDocument();
// !!!!!!!!!!
//$dom->loadHTMLFile($originalFilename);
$dom->loadHTML($originalHTMLContent);
$xpath = new DOMXPath($dom);
$nodes = $xpath->query("//table[@id='starwars-table']/tbody/tr/td");
foreach ($nodes as $tdNode) {
$anchorNode = $dom->createElement('a', $tdNode->nodeValue);
$anchorNode->setAttribute('href', 'http://s...content-available-to-author-only...s.com/' . $tdNode->nodeValue . '-robot/' . strtolower($tdNode->nodeValue) . '.php'); $anchorNode->setAttribute('target', '_blank');
$tdNode->nodeValue = '';
$tdNode->appendChild($anchorNode);
}
// Create new file
//$dom->saveHTMLFile($newFilename);
// Print output
echo $dom->saveHTML();
PD9waHAKJG9yaWdpbmFsRmlsZW5hbWUgPSAnLi90ZXN0Lmh0bWwnOwoKLy8gcmF3IEhUTUwgaW5wdXQKJG9yaWdpbmFsSFRNTENvbnRlbnQgPSAnPCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkFzZGFzZDwvdGl0bGU+CiAgICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCI+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPGRpdj4KICAgICAgPHRhYmxlIGlkPSJzdGFyd2Fycy10YWJsZSI+CiAgICAgICAgPHRoZWFkPgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGg+VGVzdCB0YWJsZSBoZWFkZXIgMTwvdGg+CiAgICAgICAgICAgIDx0aD5UZXN0IHRhYmxlIGhlYWRlciAyPC90aD4KICAgICAgICAgICAgPHRoPlRlc3QgdGFibGUgaGVhZGVyIDM8L3RoPgogICAgICAgICAgICA8dGg+VGVzdCB0YWJsZSBoZWFkZXIgNDwvdGg+CiAgICAgICAgICA8L3RyPgogICAgICAgIDwvdGhlYWQ+CiAgICAgICAgPHRib2R5PgogICAgICAgICAgPHRyPgogICAgICAgICAgICA8dGQ+VFItMjUtQTwvdGQ+CiAgICAgICAgICAgIDx0ZD5UUi0yNS1CPC90ZD4KICAgICAgICAgICAgPHRkPjItMi1TQTwvdGQ+CiAgICAgICAgICAgIDx0ZD4yLTItUVdFPC90ZD4KICAgICAgICAgIDwvdHI+CiAgICAgICAgPC90Ym9keT4KICAgICAgPC90YWJsZT4KICAgIDwvZGl2PgogIDwvYm9keT4KPC9odG1sPic7CgokbmV3RmlsZW5hbWUgPSAnLi90ZXN0X01PRElGSUVELmh0bWwnOwokZG9tID0gbmV3IERPTURvY3VtZW50KCk7Ci8vICEhISEhISEhISEgCi8vJGRvbS0+bG9hZEhUTUxGaWxlKCRvcmlnaW5hbEZpbGVuYW1lKTsKJGRvbS0+bG9hZEhUTUwoJG9yaWdpbmFsSFRNTENvbnRlbnQpOwokeHBhdGggPSBuZXcgRE9NWFBhdGgoJGRvbSk7CiRub2RlcyA9ICR4cGF0aC0+cXVlcnkoIi8vdGFibGVbQGlkPSdzdGFyd2Fycy10YWJsZSddL3Rib2R5L3RyL3RkIik7Cgpmb3JlYWNoICgkbm9kZXMgYXMgJHRkTm9kZSkgewogICRhbmNob3JOb2RlID0gJGRvbS0+Y3JlYXRlRWxlbWVudCgnYScsICR0ZE5vZGUtPm5vZGVWYWx1ZSk7CiAgJGFuY2hvck5vZGUtPnNldEF0dHJpYnV0ZSgnaHJlZicsICdodHRwOi8vcy4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4ucy5jb20vJyAuICR0ZE5vZGUtPm5vZGVWYWx1ZSAuICctcm9ib3QvJyAuIHN0cnRvbG93ZXIoJHRkTm9kZS0+bm9kZVZhbHVlKSAuICcucGhwJyk7CiAgJGFuY2hvck5vZGUtPnNldEF0dHJpYnV0ZSgndGFyZ2V0JywgJ19ibGFuaycpOwogICR0ZE5vZGUtPm5vZGVWYWx1ZSA9ICcnOwogICR0ZE5vZGUtPmFwcGVuZENoaWxkKCRhbmNob3JOb2RlKTsKfQoKLy8gQ3JlYXRlIG5ldyBmaWxlCi8vJGRvbS0+c2F2ZUhUTUxGaWxlKCRuZXdGaWxlbmFtZSk7Ci8vIFByaW50IG91dHB1dAplY2hvICRkb20tPnNhdmVIVE1MKCk7