我在HTML中有以下html代码:
<ul><li><a href="/webapps/portal/frameset.jsp?tab_tab_group_id=noActiveTabGroup&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_343744_1%26url%3D" target="_top">CCM.TC2012.1.1111.20132 : Proyecto de desarrollo de software ( 11 Gpo 1)</a></li> <li><a href="/webapps/portal/frameset.jsp?tab_tab_group_id=noActiveTabGroup&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_343703_1%26url%3D" target="_top">CCM.TC3003.1.1111.20088 : Diseño y arquitectura de software ( 11 Gpo 1)</a></li> <li><a href="/webapps/portal/frameset.jsp?tab_tab_group_id=noActiveTabGroup&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_343700_1%26url%3D" target="_top">CCM.TC3007.1.1111.20085 : Proyecto integrador de tecnologías computacionales ( 11 Gpo 1)</a></li> <li><a href="/webapps/portal/frameset.jsp?tab_tab_group_id=noActiveTabGroup&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_374651_1%26url%3D" target="_top">CCM.WA3001.12.1111.20338 : Competencias profesionales ( 11 Gpo 12)</a></li></ul>
我正在尝试使用下一个代码获取列表的链接(href值):
$dom = new domDocument;
@$dom->loadHTML($materias);
$dom->preserveWhiteSpace = false;
$ul = $dom->getElementsByTagName('ul');
$value = $dom->getElementsByTagName("ul")->item(0)->getAttributeNode("href");
$lis = $ul->item(0)->getElementsByTagName('li');
foreach ($lis as $li){
echo li->nodeValue;
}
但我只得到文本而不是href的值。你能帮帮我吗?
答案 0 :(得分:1)
href是a元素的属性。您正在获取UL和LI,因此没有要获取的href属性。
尝试使用此XPath:
/html/body/ul/li/a/@href
这将获取所有href attribute nodes
答案 1 :(得分:0)
$li->getAttribute( 'href' );
?
编辑:错误 - 当我查看手册时,它看起来像$li->attributes->getNamedItem("href")->nodeValue;