如何将链接转换为带有PHP的HTML列表?

时间:2011-02-08 21:11:18

标签: php domdocument

我在HTML中有以下html代码:

<ul><li><a href="/webapps/portal/frameset.jsp?tab_tab_group_id=noActiveTabGroup&amp;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&amp;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&amp;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&amp;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的值。你能帮帮我吗?

2 个答案:

答案 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;

相关问题