[英]getting the element from the p tag
如何使用DOMDocument从ap标记内具有ID categories
的<p>
标记获取内容?
这是代码:
<?php
ini_set('max_execution_time', 300);
//error_reporting(0);
$errmsg_arr = array();
$errflag = false;
function getState($string)
{
$ex = explode(" ",$string." ");
return $ex[1];
}
$xml = "";
$xml .= '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '
<tv generator-info-name="www.mysite.com/xmltv">';
$baseUrl = file_get_contents('www.myscript.com/get-listing.php');
$domdoc = new DOMDocument();
$domdoc->strictErrorChecking = false;
$domdoc->recover=true;
$domdoc->loadHTML($baseUrl);
?>
例如,我的HTML可能如下所示:
<p id='categories'>Sports</p>
我正在尝试提取以下文本:
Sports
所以当我尝试这个:
$p = $domdoc->getElementById('categories')->getElementsByTagName('p')->item(0);
回声$ p;
它不会从id categories
提取内容。
我该怎么做?
仅对于该html,您可以这样操作:
echo $domdoc->getElementById('categories')->nodeValue;
输出:
体育
看到它在这里行动。
由于您不能在<p>
标记内包含<p>
标记,因此DOMDocument
类对此感到疯狂。 根据情况,您可以执行以下解决方法:
$baseUrl = '
<p id="categories">
<p>Sports</p>
</p>';
$baseUrl = str_replace('<p', '<div', $baseUrl);
$baseUrl = str_replace('<p>', '<div>', $baseUrl);
$baseUrl = str_replace('</p>', '</div>', $baseUrl);
$domdoc = new DOMDocument();
$domdoc->loadHTML($baseUrl);
echo $domdoc->getElementById('categories')->getElementsByTagName('div')->item(0)->nodeValue;
输出与以前相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.