Kir*_*ski 2 php jquery parsing dom
可能重复:
如何使用PHP解析HTML?
我需要在td标记内解析一个字符串.我可以使用jQuery执行此操作,具体如下:
$("#right .olddata:first td.numeric:first").html()
Run Code Online (Sandbox Code Playgroud)
如果我在字符串变量中有HTML代码,我如何获得相同td的内容?
简单的HTML DOM
简单的HTML Dom提供了一种面向对象的方式来访问php中的html dom.我之前使用过很多次成功,但它会在大型dom结构上窒息.一个很好的功能是能够操纵dom并使用这个oo设计保存它.它允许您执行dom的选择器搜索:
// Find all <div> which attribute id=foo
$ret = $html->find('div[id=foo]');
Run Code Online (Sandbox Code Playgroud)
要么:
// 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);
Run Code Online (Sandbox Code Playgroud)
它允许遍历:
echo $html->getElementById("div1")->childNodes(1)->childNodes(1)->childNodes(2)->getAttribute('id');
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
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");
Run Code Online (Sandbox Code Playgroud)
XPath还有更多功能; 如果您需要从任何xml结构化文档中提取大量信息,我建议您继续探索它.
| 归档时间: |
|
| 查看次数: |
7685 次 |
| 最近记录: |