使用 php dom 文档打印 html 表

发布于 2024-12-04 18:21:10 字数 12412 浏览 0 评论 0原文

需要帮助,

我想使用 php domdocument 在我们的网页中打印这个 html 代码,但是很困难 我还用下面的代码编写了代码。请你帮助我好吗。

<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 次,但应该只有两次,因为外部表只有两行。

$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>";

那么我如何使用 php dom 文档在我的网页中打印 html 表。 我是 php dom 的新手。

谢谢。 多谢。

Need help,

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>  >  <A
                href="/listing.php?cat=Air+Compressors">Air Compressors</A>
             > </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&w=250&h=250"></div --><!-- ORIG PHOTOS div style="margin-bottom:12px"><img src="thumb.php?f=A1194.jpg&w=250&h=250"></div -->
            <DIV style="MARGIN-BOTTOM: 12px"><A
                href="/photos.php?id=7135&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&w=250&h=250"></div --><!-- ORIG PHOTOS div style="margin-bottom:12px"><img src="thumb.php?f=A1194_1.jpg&w=250&h=250"></div -->
            <DIV style="MARGIN-BOTTOM: 12px"><A
                href="/photos.php?id=7135&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>
              All quotations subject to prior sale.</DIV>
            </TD>
        </TR>
    </TBODY>

</table>

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>";

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

独木成林 2024-12-11 18:21:10

getElementsByTagName 适用于整个文档。该文档有 17 个 tr 元素,因此无论它们放置在何处,它都会返回所有元素。

当您想要查找特定的 tr 元素,或更具体地查找特定表内的图像时,我建议您让 xpath 完成大部分工作:

$xpath = new DOMXPath($xml);

$nodes =$xpath->query("//table[@id='machine']/tbody/tr/td/div/a/img");

echo 'Found ', $nodes->length, ":\n";

foreach($nodes as $node)
{
    $img = $node;
    $a = $node->parentNode;
    $aHref = $a->getAttribute('href');
    $imgSrc = $img->getAttribute('src');
    printf("Element:\n + href: %s;\n +- src: %s\n\n", $aHref, $imgSrc);
}

这将列出 3 个元素(而不是 2 个)。您需要进一步决定要删除哪些,但这应该会让事情变得更容易。 演示 &输出:

Found 3:
Element:
 + href: /photos.php?id=7135&p=1;
 +- src: /class/class_Image.php?load=cGhvdG9zL0ExMTk0LmpwZ3wyNTB8MjUwfDF8

Element:
 + href: /photos.php?id=7135&p=2;
 +- src: /class/class_Image.php?load=cGhvdG9zL0ExMTk0XzEuanBnfDI1MHwyNTB8MXw=

Element:
 + href: /machine-print.php?id=7135;
 +- src: http://www.sterlingmachinery.com/images/quick_quote.jpg

另一个提示:首先将数据规范化为数组等结构。然后您可以使用数组来生成输出。完成后,您可以将解析与输出分开,这将使您更容易实现目标。

  • 将文档解析为数组。
  • 根据需要修改该数组中的值(例如 GetMainBaseFromURL)。
  • 根据数组生成输出。

getElementsByTagName works on the whole document. The document has 17 tr elements, so it will return them all regardless where those are placed.

As you want to look for specific tr elements, or more specifically for images inside a specific table, I suggest you let xpath do most of the work:

$xpath = new DOMXPath($xml);

$nodes =$xpath->query("//table[@id='machine']/tbody/tr/td/div/a/img");

echo 'Found ', $nodes->length, ":\n";

foreach($nodes as $node)
{
    $img = $node;
    $a = $node->parentNode;
    $aHref = $a->getAttribute('href');
    $imgSrc = $img->getAttribute('src');
    printf("Element:\n + href: %s;\n +- src: %s\n\n", $aHref, $imgSrc);
}

This will list 3 elements already (not 2). You need to further on decide which ones to drop, but this should make it more easy. Demo & Output:

Found 3:
Element:
 + href: /photos.php?id=7135&p=1;
 +- src: /class/class_Image.php?load=cGhvdG9zL0ExMTk0LmpwZ3wyNTB8MjUwfDF8

Element:
 + href: /photos.php?id=7135&p=2;
 +- src: /class/class_Image.php?load=cGhvdG9zL0ExMTk0XzEuanBnfDI1MHwyNTB8MXw=

Element:
 + href: /machine-print.php?id=7135;
 +- src: http://www.sterlingmachinery.com/images/quick_quote.jpg

Another tip: First normalize your data into a structure like an array. You can then use your array to generate the output. That done you can separate the parsing from the output which will make it more easy for you to achieve your goals.

  • Parse the document into an array.
  • Modify values as you need them in that array (e.g. GetMainBaseFromURL).
  • Generate the output based on the array.
忘东忘西忘不掉你 2024-12-11 18:21:10

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

要仅获取两个外部,您可以执行类似

$tbody = $table->childNodes;

的操作$outerTr = $tbody->childNodes;

迭代 $outerTr

您还可以构建一个 Xpath 表达式来仅获取两个外部

我没有测试您的代码,但是,在其他 foreach 中,请记住 getElementsByTagName("tr") (或其他标记 td)的相同问题,一个..)

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;

$outerTr = $tbody->childNodes;

An the iterate on $outerTr

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

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 ..)

ぃ双果 2024-12-11 18:21:10

如果您只想复制表格,可以这样做:

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

$table = $xml->getElementById('machine');
echo $xml->saveXML($table);
?>

If you just want to copy the table you can do this:

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

$table = $xml->getElementById('machine');
echo $xml->saveXML($table);
?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文