judejitsu Posted May 29, 2012 Share Posted May 29, 2012 Hi guys, I have this chunk of code, I need to find out why it doesn't find the nodeValue for some parts of my HTML file. <?php $string = ' <p> <b>HEADER INFO</b> <table width=100% cellspacing=0> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>View Object:</b> 6600422</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>BPO:</b> G37147359-000000</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Ack Date:</b> 2012-05-28</font></td> </tr> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=3><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Operation(s):</b> PPS_Queue, PPS_Build, PPS_BoxAll, JPN_End</font></td> </tr> </table> </p> <hr> <p> <b>EXTERNAL ORDER NUMBER REFERENCE</b> <table width=100% cellspacing=0> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>SAP Sales Order Number</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Customer P.O. Number</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Legacy Order Number</b></font></td> </tr> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">0310363858</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">77340892008-120413</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">89FF09378001</font></td> </tr> </table> </p> <hr> <p> <b>PRODUCTS FOR THIS WORK OBJECT/OPERATION(S)</b> <table width=100% cellspacing=0> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>PL</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Product #</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Qty</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Options</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Serial #</b></font></td> </tr> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">3C</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">AP703B</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">1</font></td> <td valign=top colspan=1>  </td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">2S6219000G</font></td> </tr> </table> </p> <hr> <p> <b>Station Info</b> <table width=100% cellspacing=0> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Start Station:</b> JPN_End</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Location:</b> Done</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Station:</b> </font></td> </tr> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Birth Date/Time:</b> 2012-05-23 14:20:32 SGT</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Power Cord:</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Voltage:</b></font></td> </tr> </table> </p> <hr> <p> <b>MATERIAL LIST FOR THIS WORK OBJECT/OPERATION(S)</b> <table width=100% cellspacing=0> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Part Number</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Qty</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Description</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>BB Type</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Material Location</b></font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"><b>Serial Number</b></font></td> </tr> <tr align=left> <td width=2% colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\"> </font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">AP703B@@</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">1</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">OEM Generic 1U SAS Enclosure</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">BOM</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">ASSY</font></td> <td valign=top colspan=1><font face=\"verdana, arial, helvetica\" size=\"-2\">2S6219000G</font></td> </tr> </table> </p> '; $result = parse_data($string); extract($result); echo $headertext.'<br />'; echo $sapSON.'<br />'; echo $custPON.'<br />'; echo $legacyON.'<br />'; echo $pl.'<br />'; echo $pn.'<br />'; function parse_data($string){ $string = str_replace(' ','',$string); $xml = new DOMDocument(); @$xml->loadHTML($string); $ret = array(); foreach($xml->getElementsByTagName('p') as $p) { $header = trim($p->nodeValue); } foreach($xml->getElementsByTagName('td') as $td) { $value = trim($td->nodeValue); if(!empty($value) && is_numeric($value{0})){ $ret[] = $value; } } $ret = array('headertext'=>$header, 'sapSON'=>$ret[0], 'custPON'=>$ret[1], 'legacyON'=>$ret[2], 'pl'=>$ret[3], 'pn'=>$ret[4],); return $ret; } ?> Problem is, the $pn variable doesn't display the value instead jumps to the next <td> which contains the QTY value. Link to comment https://forums.phpfreaks.com/topic/263307-get-nodevalue-with-php/ Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.