gpt4 book ai didi

php - 在 php 中解析 DOM(就像在 jQuery 中一样)

转载 作者:行者123 更新时间:2023-12-01 02:07:53 24 4
gpt4 key购买 nike

Possible Duplicate:
How to parse HTML with PHP?

我需要解析 td 标记内的字符串。我可以使用 jQuery 执行以下操作:

$("#right .olddata:first td.numeric:first").html()

如果我将 HTML 代码放在字符串变量中,如何获取同一个 td 的内容?

最佳答案

简单的 HTML DOM

Simple HTML Dom提供了一种面向对象的方式在php中访问html dom。我之前已经使用过它并取得了很大的成功,但是它会在大型 dom 结构上窒息。一个很好的功能是能够使用这种 oo 设计来操作 dom 并保存它。它允许您执行 dom 的选择器搜索:

// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]');

或者:

// Find all <li> in <ul> 
foreach($html->find('ul') as $ul)
{
foreach($ul->find('li') as $li)
{
// do something...
}
}

// Find first <li> in first <ul>
$e = $html->find('ul', 0)->find('li', 0);

并且它允许遍历:

echo $html->getElementById("div1")->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id');

DOM文档

正如其他人所指出的,您还可以使用 DOMDocument也是如此。

XPath

从我个人的经验来看,虽然 xpath 很难工作,但如果您只对从 dom 中提取信息感兴趣,那么这是值得的。

虽然与您尝试提取的信息并不完全相关,但以下是我使用 xpath 从 xml 文档中提取信息的方法:

XML:

<?xml version="1.0" encoding="utf-8"?>
<Report>
<CampaignPerformanceReportColumns>
<Column name="AccountName" />
...
<Column name="CampaignId" />
</CampaignPerformanceReportColumns>
<Table>
<Row>
<CampaignName value="Auctions" />
<GregorianDate value="8/11/2010" />
...
<CampaignId value="60312546" />
</Row>
<Row>
<CampaignName value="Auctions" />
<GregorianDate value="8/11/2010" />
...
<CampaignId value="60312546" />
</Row>
<Row>
<CampaignName value="Auctions 2" />
<GregorianDate value="8/11/2010" />
...
<CampaignId value="603125467" />
</Row>
</Table>
</Report>

PHP:

$xml = simplexml_load_file($file);

// Get each Row
$result = $xml->xpath("Table/Row");

// Get the CampaignId of each Row
$result = $xml->xpath("//Row/CampaignId");

XPath 还有更多功能;如果您需要从任何 xml 结构的文档中提取大量信息,我鼓励您探索它。

关于php - 在 php 中解析 DOM(就像在 jQuery 中一样),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7476925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com