打印html表使用php dom文件 [英] print html table using php dom document

查看:171
本文介绍了打印html表使用php dom文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

需要帮助,

我想使用php domdocument在我们的网页上打印这个html代码,但挣扎
我也写了代码下面。你可以帮助我吗?

I would like to print this html code in our web page using php domdocument, but struggling I have also write the code with below. Could you please help me.

<table width="610" id="machine" border="0" cellSpacing="10"
    cellPadding="0">

    <TBODY>
        <TR>
            <TD colSpan=2 align=left>
            <DIV id=breadcrumbs><A href="/new-and-used-machinery.php">All
            Machines</A> &nbsp;&gt;&nbsp; <A
                href="/listing.php?cat=Air+Compressors">Air Compressors</A>
            &nbsp;&gt;&nbsp;</DIV>
            <DIV id=ForSale>FOR SALE:</DIV>
            <H1>5 CFM Used Speedaire Air Compressor, Single Phase, 60 Gallon
            tank, 1.5 H.P. #A1194</H1>
            </TD>
        </TR>
        <TR>
            <TD id=photos vAlign=top width=270 align=middle>
            <DIV id=ClickPhotos>Click On Photos For Larger Image:</DIV>
            <!-- PHOTOS DB div style="margin-bottom:12px"><img src="thumb.php?id=A1194.jpg&amp;w=250&amp;h=250"></div --><!-- ORIG PHOTOS div style="margin-bottom:12px"><img src="thumb.php?f=A1194.jpg&amp;w=250&amp;h=250"></div -->
            <DIV style="MARGIN-BOTTOM: 12px"><A
                href="/photos.php?id=7135&amp;p=1"><IMG
                title="Used Speedaire Air Compressor"
                alt="Used Speedaire Air Compressor"
                src="/class/class_Image.php?load=cGhvdG9zL0ExMTk0LmpwZ3wyNTB8MjUwfDF8"></A>
            </DIV>
            <!-- PHOTOS DB div style="margin-bottom:12px"><img src="thumb.php?id=A1194_1.jpg&amp;w=250&amp;h=250"></div --><!-- ORIG PHOTOS div style="margin-bottom:12px"><img src="thumb.php?f=A1194_1.jpg&amp;w=250&amp;h=250"></div -->
            <DIV style="MARGIN-BOTTOM: 12px"><A
                href="/photos.php?id=7135&amp;p=2"><IMG
                title="Used Speedaire Air Compressor"
                alt="Used Speedaire Air Compressor"
                src="/class/class_Image.php?load=cGhvdG9zL0ExMTk0XzEuanBnfDI1MHwyNTB8MXw="></A>
            </DIV>
            </TD>
            <TD id=details vAlign=top width=310 align=left>
            <TABLE
                style="BORDER-BOTTOM: #cdcdcd 1px solid; BORDER-LEFT: #cdcdcd 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #cdcdcd 1px solid; BORDER-RIGHT: #cdcdcd 1px solid; PADDING-TOP: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px"
                id=machine_buttons border=0 cellSpacing=3 cellPadding=0>
                <TBODY>
                    <TR>
                        <TD><A onmouseover="swapImg('Manufact', true)"
                            onmouseout="swapImg('Manufact', false)"
                            href="/manufacturer.php?brand=Speedaire"><IMG id=icon_Manufact
                            border=0 alt="" src="/images/machine_button_Manufact.gif"
                            width=66 height=33><BR>
                        Manufacturer Info</A></TD>
                    </TR>
                    <TR>
                        <TD><A onmouseover="swapImg('Category', true)"
                            onmouseout="swapImg('Category', false)"
                            href="/listing.php?cat=Air+Compressors"><IMG id=icon_Category
                            border=0 alt="" src="/images/machine_button_Category.gif"
                            width=66 height=33><BR>
                        Similar Machines</A></TD>
                    </TR>
                    <TR>
                        <TD><A onmouseover="swapImg('Brochure', true)"
                            onmouseout="swapImg('Brochure', false)"
                            href="/manufacturer.php?brand=Speedaire#brochures" target=_blank><IMG
                            id=icon_Brochure border=0 alt=""
                            src="/images/machine_button_Brochure.gif" width=66 height=33><BR>
                        OEM Brochure</A></TD>
                    </TR>
                    <TR>
                        <TD><A style="CURSOR: pointer" id=shadowbox_email class=sb
                            title="Used Speedaire Air Compressor" href="/share.php?id=7135"
                            rel=shadowbox;width=520;height=500 shadowboxCacheKey="1"
                            onMouseOver="swapImg('Email', true)"
                            onMouseOut="swapImg('Email', false)" jQuery1316148993734="2"><IMG
                            id=icon_Email border=0 alt=""
                            src="/images/machine_button_Email.gif" width=66 height=33
                            jQuery1316148993734="3"><BR>
                        Email A Friend</A></TD>
                    </TR>
                    <TR>
                        <TD><A onmouseover="swapImg('Ship', true)"
                            onmouseout="swapImg('Ship', false)" href="/shipping.php?id=7135"><IMG
                            id=icon_Ship border=0 alt=""
                            src="/images/machine_button_Ship.gif" width=66 height=33><BR>
                        Shipping</A></TD>
                    </TR>
                </TBODY>
            </TABLE>
            <DIV id=QuickQuote><A href="/machine-print.php?id=7135" target=_blank><IMG
                title="Print a Quick Quote!" border=0 alt="Print a Quick Quote!"
                align=absMiddle
                src="http://www.sterlingmachinery.com/images/quick_quote.jpg"> </A></DIV>
            <DIV style="MARGIN: 5px 0px 0px 45px">
            <FORM method=post name=addmachine action=/request-quote.php
                jQuery1316148993734="5"><INPUT id=add
                title="Add Machine to Quote Cart" value="Add Machine to Quote Cart"
                alt="Add Machine to Quote Cart"
                src="http://www.sterlingmachinery.com/images/quick_add.jpg"
                type=image name=add jQuery1316148993734="7"> <IMG
                style="DISPLAY: none; CURSOR: pointer" id=remove
                title="Remove from quote cart" name=remove
                alt="Remove from quote cart" src="/images/remove.gif" width=16
                height=16 jQuery1316148993734="8">
            <DIV style="MARGIN-TOP: 5px"><INPUT id=view title="View Quote Cart"
                value="View Quote Cart" alt="View Quote Cart"
                src="http://www.sterlingmachinery.com/images/quick_view.jpg"
                type=image name=view></DIV>
            </FORM>
            </DIV>
            <BR>
            <TABLE id=machine_stats border=0 cellSpacing=5 cellPadding=0
                width=300>
                <TBODY>
                    <TR>
                        <TD class=field vAlign=top align=right>Stock #</TD>
                        <TD vAlign=top align=left>A1194</TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Manufacturer:</TD>
                        <TD vAlign=top align=left><A
                            href="/manufacturer.php?brand=Speedaire">Speedaire</A></TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Model:</TD>
                        <TD vAlign=top align=left><A
                            href="/listing.php?cat=Air+Compressors"></A></TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Capacity:</TD>
                        <TD vAlign=top align=left><A
                            href="/listing.php?cat=Air+Compressors">5 CFM</A></TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Price:</TD>
                        <TD vAlign=top align=left><SPAN style="BACKGROUND-COLOR: #ffff00">$350</SPAN></TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Category:</TD>
                        <TD vAlign=top align=left><A
                            href="/results.php?keywords=Air+Compressors">Air Compressors</A></TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Condition:</TD>
                        <TD vAlign=top align=left>Used Machinery</TD>
                    </TR>
                </TBODY>
            </TABLE>
            <FIELDSET><LEGEND>Full Description</LEGEND>
            <TABLE id=machine_specs border=0 cellSpacing=0 cellPadding=4
                width=300>
                <TBODY>
                    <TR>
                        <TD
                            style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"
                            class=field vAlign=top align=right>CFM Rating:</TD>
                        <TD
                            style="BORDER-RIGHT-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px"
                            vAlign=top align=left>5</TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Tank Size:</TD>
                        <TD vAlign=top align=left>60 Gallon</TD>
                    </TR>
                    <TR>
                        <TD class=field vAlign=top align=right>Weight:</TD>
                        <TD vAlign=top align=left>400 LBS.</TD>
                    </TR>
                </TBODY>
            </TABLE>
            </FIELDSET>
            <FIELDSET><LEGEND>Equipped With</LEGEND>Single Phase Motor<BR>
            Horsepower: 1 1/2</FIELDSET>
            <DIV class=privates>* Temporary specifications subject to
            verification.<BR>
            &nbsp; All quotations subject to prior sale.</DIV>
            </TD>
        </TR>
    </TBODY>

</table>

我已经写了这段代码,但没有正确。
外部foreach循环运行17次,但应该只有两次,因为外表只有两行。

I have write this code but its not getting properly. Outer foreach loops runs 17 times but should be only two time because the outer table has only two rows.

$xml = new DOMDocument();
$xml->validateOnParse = true;
$xml->loadHTMLFile($url);

$xpath = new DOMXPath($xml);

$table =$xpath->query("//*[@id='machine']")->item(0);

echo "<table border=2>";
$rows = $table->getElementsByTagName("tr");

foreach ($rows as $row) //there i only two rows. 
{
echo "<tr>";
  $cells = $row -> getElementsByTagName('td');

  foreach ($cells as $cell) 
  {
   echo "<td>";
   foreach ($cell->getElementsByTagName('table') as $innerTable )
   {
      foreach ( $innerTable->getElementsByTagName("tr") as $innerTrs)
      {
        foreach ( $innerTrs->getElementsByTagName('td') as $innerCell)
        {
            foreach ($innerCell->getElementsByTagName('a') as $a )
            {
               echo '<br><a href="'.GetMainBaseFromURL($url).$a->getAttribute('href').'">'.$a->nodeValue.'</a>';

              foreach ($a->getElementsByTagName('img') as $img )
                 echo '<br><a href="'.GetMainBaseFromURL($url).$a->getAttribute('href').'"> <img src="'.GetMainBaseFromURL($url).$img->getAttribute('src').'"></a>';
            }        
        }
      }
   }

   echo "</td>";  
  }
  echo "</tr>";
}
echo "</table>";

然后我如何打印,因为它是html表在我的网页使用php dom文档。
我在php dom中是新的。

Then how can i print as it is html table in my web page using php dom document. I am new in php dom.

谢谢。
非常感谢。

Thank you. Thanks a lot.

推荐答案

foreach循环迭代17,只因为你发布的HTML代码中有17个标签。
实际上$ rows = $ table-> getElementsByTagName(tr);提取树中任何深度的任何标签。

The foreach loop iterates 17 just because you have 17 tags in the HTML code you posted. Actually the $rows = $table->getElementsByTagName("tr"); extracts any tag at any depth in the tree.

要只得到两个外部你可以做一些像

To get only the two outer you can do something like

$ tbody = $ table-> childNodes;

$tbody = $table->childNodes;

$ outerTr = $ tbody-> childNodes;

$outerTr = $tbody->childNodes;

$ outerTr

An the iterate on $outerTr

上的迭代您还可以构建一个Xpath表达式,只得到两个外部

You can also build an Xpath expression to get only the two outer

不要测试yout代码,但在其他的foreach中,请记住getElementsByTagName(tr)(或其他标签td,a ..)相同的问题。

I did not test yout code however, in the others foreach, keep in mind the same problem of getElementsByTagName("tr") (or other tags td,a ..)

这篇关于打印html表使用php dom文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆