我正在使用我的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);
}
答案 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);
}
}
?>