繁体   English   中英

从p标签获取元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM