PHP DOM遍历另一个元素中的元素
我必须从网站上收集一些数据。我的数据被包装为div s。每个div内都有一个标题标签。我需要获取这些标题标签内的文本。如何做到这一点。 我已经写了下面的代码。我要申请什么修改才能完成任务PHP DOM遍历另一个元素中的元素,php,dom,web,Php,Dom,Web,我必须从网站上收集一些数据。我的数据被包装为div s。每个div内都有一个标题标签。我需要获取这些标题标签内的文本。如何做到这一点。 我已经写了下面的代码。我要申请什么修改才能完成任务 <?php $str = ''; $page = file_get_contents('http://www.sarkari-naukri.in/'); $dom = new DOMDocument(); $dom->loadHTML($page); $divs = $dom->getEle
<?php
$str = '';
$page = file_get_contents('http://www.sarkari-naukri.in/');
$dom = new DOMDocument();
$dom->loadHTML($page);
$divs = $dom->getElementsByTagName('div');
$i = 0;
$len = $divs->length;
while($i<$len) {
$div = $divs->item($i++);
$id = $div->getAttribute('id');
if(strpos($id,'post-') !== false ) {
// i need to get text inside title tag inside this div
$title ='';//title should be stored here
$str = $str.$title;
}
}
echo $str;
您可以使用xpath查询来检索标题信息:
$xml = "<body>
<div id = 'post-1'>
<title>title 1</title>
</div>
<div id = 'post-2'>
<title>title 2</title>
</div>
<div id = 'post-3'>
<title>title 3</title>
</div>
</body>";
$str = '';
$doc = new DOMDocument;
$doc->loadHTML($xml);
$xpath = new DOMXPath($doc);
$entries = $xpath->query('//body/div/title');
foreach ($entries as $entry) {
$str .= $entry->nodeValue;
}
var_dump($str);
$xml=”
标题1
标题2
标题3
";
$str='';
$doc=新文档;
$doc->loadHTML($xml);
$xpath=新的DOMXPath($doc);
$entries=$xpath->query('//body/div/title');
foreach($entries作为$entry){
$str.=$entry->nodeValue;
}
var_dump($str);
.您可以使用xpath查询来检索标题信息:
$xml = "<body>
<div id = 'post-1'>
<title>title 1</title>
</div>
<div id = 'post-2'>
<title>title 2</title>
</div>
<div id = 'post-3'>
<title>title 3</title>
</div>
</body>";
$str = '';
$doc = new DOMDocument;
$doc->loadHTML($xml);
$xpath = new DOMXPath($doc);
$entries = $xpath->query('//body/div/title');
foreach ($entries as $entry) {
$str .= $entry->nodeValue;
}
var_dump($str);
$xml=”
标题1
标题2
标题3
";
$str='';
$doc=新文档;
$doc->loadHTML($xml);
$xpath=新的DOMXPath($doc);
$entries=$xpath->query('//body/div/title');
foreach($entries作为$entry){
$str.=$entry->nodeValue;
}
var_dump($str);
.以下PHP文档代码:
$id = $div->getAttribute('id');
if (strpos($id,'post-') !== false) {
可以用以下形式表示:
读取:任何div
元素,其具有包含字符串post-
的id
属性。根据Xpath规则,您可以进一步扩展表达式,如选择以下所有表达式的标题子级:
//div[contains(@id, 'post-')]/title
以下是PHP文档代码:
$id = $div->getAttribute('id');
if (strpos($id,'post-') !== false) {
可以用以下形式表示:
读取:任何div
元素,其具有包含字符串post-
的id
属性。根据Xpath规则,您可以进一步扩展表达式,如选择以下所有表达式的标题子级:
//div[contains(@id, 'post-')]/title
谢谢你的回答…我需要选择someAttribute=someValue的div…怎么做?@JinuJD:还有xpath,请使用搜索。例如,请看-过一段时间后,您应该会对它感到满意。感谢您给出了令人惊叹的答案…我需要选择someAttribute=someValue的div…如何做到这一点?@JinuJD:以及xpath,请使用搜索。例如,看-过一段时间后你应该会对它感到舒服。谢谢。这正是我想要的。这里也可能是你的意思?但是它没有被解析,因为我的HTML有错误并且没有DOM。怎么办?如果HTML无效(即使无效,loadHTML也无法处理它),请与tidy联系:谢谢。这正是我想要的。这里也可能是你的意思?但由于我的HTML有错误且没有DOM,因此它没有被解析。怎么办?如果HTML无效(即使loadHTML无法处理该无效),请与tidy联系: