1.有一个demo.xml文件
2.利用php代码提取demo.xml里的一些信息并生成一个网页
a.提取demo.xml所有field tag的相关属性
例如<field name="abcd" x=10pt y=10pt w=10pt h=10pt>
需要得到name,x,y,w,h(x,y表示左上角坐标,w,h表示宽高)
b.遇到<break这个tag表示分页用<hr>
3.当把所有的field属性提取完毕之后,再根据这些属性生成一个html网页,网页的内容就是把field所在的矩形框画出来(x,y,w,h),网页左上角为原点
4.当用鼠标点击这些矩形框时,在矩形框上显示field的name属性。
代码如下:
<?php ob_start(); $xmlfile = 'quest_433_file_1_template_1_14674.pdf.xml'; $xmlparser = xml_parser_create(); $fp = fopen($xmlfile, 'r'); $xmldata = fread($fp, abs(filesize($xmlfile))); //$filesize=filesize($xmlfile); //$array = explode('<break',$xmldata); xml_parse_into_struct($xmlparser,$xmldata,$xmlarr); //print_r($xmlarr); xml_parser_free($xmlparser); echo "<html>"; //print_r($xmlarr[1713]['attributes']); echo "<head>"; for($i=0;$i<count($xmlarr);$i++) { if(array_key_exists("attributes",$xmlarr[$i])&&array_key_exists("NAME",$xmlarr[$i]['attributes'])&&array_key_exists("X",$xmlarr[$i]['attributes'])&&array_key_exists("Y",$xmlarr[$i]['attributes'])&&array_key_exists("W",$xmlarr[$i]['attributes'])&&array_key_exists("H",$xmlarr[$i]['attributes'])) { echo "<style type=text/css>table."; echo $xmlarr[$i]['attributes']['NAME'].$i."{positon:absolute;left:"; echo "border=1;"; echo "left:".$xmlarr[$i]['attributes']['X'].";"; echo "top:".$xmlarr[$i]['attributes']['Y'].";"; echo "width:".$xmlarr[$i]['attributes']['W'].";"; echo "height:".$xmlarr[$i]['attributes']['H']."}"; echo "</style>"; } } echo "</head><body width=612pt height=792pt>"; //print_r($xmlarr); for($j=0;$j<count($xmlarr);$j++) { if($xmlarr[$j]['tag']=="BREAK") echo "<hr size=5 width=100%>"; if(array_key_exists("attributes",$xmlarr[$j])&&array_key_exists("NAME",$xmlarr[$j]['attributes'])&&array_key_exists("X",$xmlarr[$j]['attributes'])&&array_key_exists("Y",$xmlarr[$j]['attributes'])&&array_key_exists("W",$xmlarr[$j]['attributes'])&&array_key_exists("H",$xmlarr[$j]['attributes'])) { echo "<script language=/"JavaScript/">"; echo "function a".$j."_onclick()"; echo "{"; echo "if(this.document.getElementById(/"".$xmlarr[$j]['attributes']['NAME'].$j."/").style.display==/"none/")"; echo "this.document.getElementById(/"".$xmlarr[$j]['attributes']['NAME'].$j."/").style.display=/"table-row/"; "; echo " else "; echo "this.document.getElementById(/"".$xmlarr[$j]['attributes']['NAME'].$j."/").style.display=/"none/";"; echo "return true;"; echo "}</script>"; echo "<div οnclick=/"return a".$j."_onclick()/">"; echo "<table border=1 class="; echo $xmlarr[$j]['attributes']['NAME'].$j."><tr><td><a id=".$xmlarr[$j]['attributes']['NAME'].$j." style=/"display:none;/">".$xmlarr[$j]['attributes']['NAME']."</a></td></tr></table></div>"; } } echo "</body></html>"; $o_fname = 'output.html'; //$length = ob_get_length(); $buffer = ob_get_contents(); ob_end_clean(); $fp = fopen($o_fname,"w+"); fwrite($fp,$buffer); fclose($fp); //} ?>