如何获取href的元素id

时间:2014-04-28 16:59:00

标签: php domdocument

我正在使用我的php来获取使用DOMDocument的href标签的ID。

我尝试使用名为<a id="test的ID解析元素。当我试图解析id时,我会得到空的回报。

我用这个:

$domdoc = new DOMDocument();
$domdoc->strictErrorChecking = false;
$domdoc->recover=true;
//@$domdoc->loadHTMLFile($baseUrl);
@$domdoc->loadHTML($baseUrl);

$links = $domdoc->getElementsByTagName('test');
$data = array();
foreach($links as $link)
{
  echo $link;;
}

这是输出:

echo '<a id="test" href="http://www.mysite.com/script.php?=' . $row["channels"] . "&id=" . $row["id"] . '">http://www.mysite.com/script.php?channels=' . $row["channels"] . "&id=" . $row["id"] . '</a>

有谁知道如何获取名为<a id="test的ID元素?

编辑:这是更新代码:

<?php
ini_set('max_execution_time', 300);
$errmsg_arr = array();
$errflag = false;

$xml .= '<?xml version="1.0" encoding="UTF-8" ?>';
$xml .= '
<tv generator-info-name="www.mysite.com/xmltv">';

$baseUrl = file_get_contents('http://www.mysite.com/get-listing.php');

$domdoc = new DOMDocument();
$domdoc->strictErrorChecking = false;
$domdoc->recover=true;
//@$domdoc->loadHTMLFile($baseUrl);
@$domdoc->loadHTML($baseUrl);

//$links = $domdoc->getElementsByTagName('test');
//$links = $domdoc->getElementById('test');
$links = $domdoc->getElementsByTagName('a');

$data = array();
foreach($links as $link)
{

  echo $domdoc->saveXML($link);
}

2 个答案:

答案 0 :(得分:0)

我认为你正在以错误的方式使用getElementsByTagName()。此方法用于获取HTML标记,而不是其属性或属性值。

请检查以下示例:

<?php
$html = '<a id="test" href="#">Some link text here</a>';
$html .= '<a id="test2" href="#">Some link text here</a>';
$DOM = new DOMDocument();
$DOM->loadHTML($html);

$links = $DOM->getElementsByTagName('a');
foreach($links as $link) {
    if( $link->getAttribute('id') == "test" ) {
        echo "<h4>Element with id test Found!</h4>";
        // Or do something else here when you find the element by id="test"
            // As an example for what you're trying from my understanding
            echo $DOM->saveHTML($link);
            // This will echo the node as html back to the browser
    }
}
?>

我使用了两个&lt; a&gt;标记为我的HTML输入,并搜索具有值为“test”的id属性的那个。

答案 1 :(得分:0)

更新您的代码..为我的工作:)

<?php
$html = file_get_contents('http://www.serbalucu.com');
$dom = new DOMDocument;
@$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');

foreach($links as $link) {

    if( $link->getAttribute('class') == "with-ul" ) {
        echo "<h1>RESULT FOUND</h1>";

            echo $dom->saveHTML($link);
    }

}
?>